import uuid from datetime import date, datetime from typing import Optional from pydantic import BaseModel, ConfigDict, Field class VerificationCreate(BaseModel): site_id: uuid.UUID subject_id: uuid.UUID level: str percent: int = Field(ge=0, le=100) last_verified_at: Optional[date] = None verifier_id: Optional[uuid.UUID] = None notes: Optional[str] = None class VerificationUpdate(BaseModel): percent: Optional[int] = Field(default=None, ge=0, le=100) last_verified_at: Optional[date] = None verifier_id: Optional[uuid.UUID] = None notes: Optional[str] = None class VerificationRead(BaseModel): id: uuid.UUID study_id: uuid.UUID site_id: uuid.UUID subject_id: uuid.UUID level: str percent: int last_verified_at: Optional[date] verifier_id: Optional[uuid.UUID] notes: Optional[str] created_at: datetime updated_at: datetime model_config = ConfigDict(from_attributes=True)