This commit is contained in:
2025-09-21 13:00:10 +02:00
parent a26f8086f8
commit c2a1056db7
56 changed files with 339 additions and 104 deletions

View File

@@ -1,16 +1,21 @@
from typing import List, TypeVar, Generic
from typing import Generic, List, TypeVar
from pydantic import BaseModel
T = TypeVar('T')
T = TypeVar("T")
class ListResponse(BaseModel, Generic[T]):
"""Generic list response model"""
items: List[T]
total: int
skip: int
limit: int
class StatusResponse(BaseModel):
"""Generic status response"""
success: bool
message: str

View File

@@ -3,8 +3,10 @@ from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel, ConfigDict, EmailStr, Field, field_validator
from models.api.stock import StockSummaryResponse
class ProductBase(BaseModel):
product_id: Optional[str] = None
title: Optional[str] = None
@@ -71,6 +73,7 @@ class ProductResponse(ProductBase):
created_at: datetime
updated_at: datetime
class ProductListResponse(BaseModel):
products: List[ProductResponse]
total: int

View File

@@ -3,8 +3,10 @@ from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel, ConfigDict, EmailStr, Field, field_validator
from models.api.product import ProductResponse
class ShopCreate(BaseModel):
shop_code: str = Field(
...,
@@ -82,6 +84,7 @@ class ShopListResponse(BaseModel):
skip: int
limit: int
class ShopProductCreate(BaseModel):
product_id: str = Field(..., description="Product ID to add to shop")
shop_product_id: Optional[str] = Field(

View File

@@ -19,4 +19,4 @@ class MarketplaceStatsResponse(BaseModel):
marketplace: str
total_products: int
unique_shops: int
unique_brands: int
unique_brands: int

View File

@@ -43,4 +43,4 @@ class StockSummaryResponse(BaseModel):
gtin: str
total_quantity: int
locations: List[StockLocationResponse]
product_title: Optional[str] = None
product_title: Optional[str] = None