import uuid from datetime import date, datetime from typing import Optional from pydantic import BaseModel, ConfigDict class DrugShipmentCreate(BaseModel): direction: str site_name: str drug_desc: str ship_date: Optional[date] = None carrier: Optional[str] = None tracking_no: Optional[str] = None from_party: Optional[str] = None to_party: Optional[str] = None status: str remark: Optional[str] = None class DrugShipmentUpdate(BaseModel): direction: Optional[str] = None site_name: Optional[str] = None drug_desc: Optional[str] = None ship_date: Optional[date] = None carrier: Optional[str] = None tracking_no: Optional[str] = None from_party: Optional[str] = None to_party: Optional[str] = None status: Optional[str] = None remark: Optional[str] = None class DrugShipmentRead(BaseModel): id: uuid.UUID study_id: uuid.UUID direction: str site_name: str drug_desc: str ship_date: Optional[date] carrier: Optional[str] tracking_no: Optional[str] from_party: Optional[str] to_party: Optional[str] status: str remark: Optional[str] created_by: Optional[uuid.UUID] created_at: datetime updated_at: datetime model_config = ConfigDict(from_attributes=True)