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