Files
tfm_ainventory/backend/schemas.py
2026-04-10 13:57:42 +03:00

51 lines
1.0 KiB
Python

from pydantic import BaseModel
from typing import Optional, List
from datetime import datetime
# --- Items ---
class ItemBase(BaseModel):
name: str
category: str
barcode: str
quantity: float = 0.0
min_quantity: float = 1.0
image_url: Optional[str] = None
labels_data: Optional[str] = None
class ItemCreate(ItemBase):
pass
class Item(ItemBase):
id: int
class Config:
from_attributes = True
# --- Operations (Check-in/Check-out Validation) ---
class OperationCreate(BaseModel):
barcode: str
quantity: float
user_id: int
class BulkOperationCreate(BaseModel):
user_id: int
items: List[OperationCreate]
class TrashOperationCreate(BaseModel):
barcode: str
quantity: float
user_id: int
reason: Optional[str] = "unspecified"
# --- Audit Logs ---
class AuditLogResponse(BaseModel):
id: int
timestamp: datetime
user_id: int
action: str
target_item_id: Optional[int]
quantity_change: Optional[float]
class Config:
from_attributes = True