Files
2026-05-29 19:24:43 +08:00

57 righe
1.3 KiB
Python

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