API and database models refactoring

This commit is contained in:
2025-09-20 20:17:16 +02:00
parent 91a0a13daa
commit c494c5b5c6
65 changed files with 931 additions and 487 deletions

46
models/api/stock.py Normal file
View File

@@ -0,0 +1,46 @@
import re
from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel, ConfigDict, EmailStr, Field, field_validator
# Stock Models
class StockBase(BaseModel):
gtin: str = Field(..., min_length=1, description="GTIN is required")
location: str = Field(..., min_length=1, description="Location is required")
class StockCreate(StockBase):
quantity: int = Field(ge=0, description="Quantity must be non-negative")
class StockAdd(StockBase):
quantity: int = Field(gt=0, description="Quantity to add must be positive")
class StockUpdate(BaseModel):
quantity: int = Field(ge=0, description="Quantity must be non-negative")
class StockResponse(BaseModel):
model_config = ConfigDict(from_attributes=True)
id: int
gtin: str
location: str
quantity: int
created_at: datetime
updated_at: datetime
class StockLocationResponse(BaseModel):
location: str
quantity: int
class StockSummaryResponse(BaseModel):
gtin: str
total_quantity: int
locations: List[StockLocationResponse]
product_title: Optional[str] = None