import uuid from datetime import date, datetime from typing import Optional from pydantic import BaseModel, ConfigDict class SubjectCreate(BaseModel): site_id: uuid.UUID subject_no: str screening_date: Optional[date] = None class SubjectUpdate(BaseModel): status: Optional[str] = None enrollment_date: Optional[date] = None completion_date: Optional[date] = None drop_reason: Optional[str] = None class SubjectRead(BaseModel): id: uuid.UUID study_id: uuid.UUID site_id: uuid.UUID subject_no: str status: str screening_date: Optional[date] enrollment_date: Optional[date] completion_date: Optional[date] drop_reason: Optional[str] created_at: datetime updated_at: datetime model_config = ConfigDict(from_attributes=True)