40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
# stock.py - Remove business logic validation constraints
|
|
from datetime import datetime
|
|
from typing import List, Optional
|
|
from pydantic import BaseModel, ConfigDict, Field
|
|
|
|
class StockBase(BaseModel):
|
|
gtin: str = Field(..., description="GTIN identifier")
|
|
location: str = Field(..., description="Storage location")
|
|
|
|
class StockCreate(StockBase):
|
|
quantity: int = Field(..., description="Initial stock quantity")
|
|
# Removed: ge=0 constraint - let service handle negative validation
|
|
|
|
class StockAdd(StockBase):
|
|
quantity: int = Field(..., description="Quantity to add/remove")
|
|
# Removed: gt=0 constraint - let service handle zero/negative validation
|
|
|
|
class StockUpdate(BaseModel):
|
|
quantity: int = Field(..., description="New stock quantity")
|
|
# Removed: ge=0 constraint - let service handle negative validation
|
|
|
|
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
|