42 lines
899 B
Python
42 lines
899 B
Python
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) |