Files
ctms/backend/app/schemas/site.py
T
2026-05-12 10:16:52 +08:00

48 lines
1.3 KiB
Python

import uuid
from datetime import date, datetime
from typing import Optional
from pydantic import BaseModel, ConfigDict, Field
class SiteCreate(BaseModel):
name: str = Field(min_length=1)
city: Optional[str] = None
pi_name: Optional[str] = None
phone: Optional[str] = None
contact: Optional[str] = None
is_active: bool = True
enrollment_plan_start_date: Optional[date] = None
enrollment_plan_end_date: Optional[date] = None
enrollment_plan_note: Optional[str] = None
class SiteUpdate(BaseModel):
name: Optional[str] = None
city: Optional[str] = None
pi_name: Optional[str] = None
phone: Optional[str] = None
contact: Optional[str] = None
is_active: Optional[bool] = None
enrollment_plan_start_date: Optional[date] = None
enrollment_plan_end_date: Optional[date] = None
enrollment_plan_note: Optional[str] = None
class SiteRead(BaseModel):
id: uuid.UUID
study_id: uuid.UUID
name: str
city: Optional[str]
pi_name: Optional[str]
phone: Optional[str]
contact: Optional[str]
is_active: bool
enrollment_target: Optional[int]
enrollment_plan_start_date: Optional[date]
enrollment_plan_end_date: Optional[date]
enrollment_plan_note: Optional[str]
created_at: datetime
model_config = ConfigDict(from_attributes=True)