| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- from pydantic import BaseModel
- from typing import Optional
- from datetime import datetime
- # ===== 库存 =====
- class InventoryBase(BaseModel):
- cInvCode: str
- supplier: Optional[str] = None
- casing_label_remark: Optional[str] = None
- batch: Optional[str] = None
- current_remaining: float = 0
- storage_location: Optional[str] = None
- class InventoryCreate(InventoryBase):
- pass
- class InventoryUpdate(BaseModel):
- cInvCode: Optional[str] = None
- supplier: Optional[str] = None
- casing_label_remark: Optional[str] = None
- batch: Optional[str] = None
- current_remaining: Optional[float] = None
- storage_location: Optional[str] = None
- class InventoryResponse(InventoryBase):
- id: int
- created_at: Optional[datetime] = None
- updated_at: Optional[datetime] = None
- class Config:
- from_attributes = True
- # ===== 出入库 =====
- class StockOperation(BaseModel):
- inventory_id: int
- type: str # "in" or "out"
- quantity: float
- remark: Optional[str] = None
- class TransactionLogResponse(BaseModel):
- id: int
- inventory_id: int
- cInvCode: str
- type: str
- quantity: float
- remark: Optional[str] = None
- created_at: Optional[datetime] = None
- class Config:
- from_attributes = True
|