from pydantic import BaseModel, Field from typing import Optional from datetime import date, datetime class BatchBase(BaseModel): batch_no: Optional[str] = None production_date: Optional[date] = None expiry_date: date quantity: int = Field(default=0, ge=0) location: Optional[str] = None class BatchCreate(BatchBase): pass class BatchUpdate(BaseModel): batch_no: Optional[str] = None production_date: Optional[date] = None expiry_date: Optional[date] = None quantity: Optional[int] = None location: Optional[str] = None class BatchResponse(BatchBase): id: int medicine_id: int is_expired: bool created_at: datetime updated_at: datetime class Config: from_attributes = True class BatchDispense(BaseModel): quantity: int = Field(..., gt=0) class BatchAddStock(BaseModel): quantity: int = Field(..., gt=0)