before claude

This commit is contained in:
Gilles Soulier
2026-01-18 06:26:17 +01:00
parent dc19315e5d
commit 740c3d7516
60 changed files with 3815 additions and 354 deletions
+45
View File
@@ -22,12 +22,23 @@ class ProductOut(BaseModel):
id: int
source: str
reference: str
asin: Optional[str] = None
url: str
title: Optional[str] = None
category: Optional[str] = None
type: Optional[str] = None
description: Optional[str] = None
currency: Optional[str] = None
msrp: Optional[float] = None
rating_value: Optional[float] = None
rating_count: Optional[int] = None
amazon_choice: Optional[bool] = None
amazon_choice_label: Optional[str] = None
discount_text: Optional[str] = None
stock_text: Optional[str] = None
in_stock: Optional[bool] = None
model_number: Optional[str] = None
model_name: Optional[str] = None
first_seen_at: datetime
last_updated_at: datetime
latest_price: Optional[float] = None
@@ -35,6 +46,8 @@ class ProductOut(BaseModel):
latest_stock_status: Optional[str] = None
latest_fetched_at: Optional[datetime] = None
images: list[str] = []
main_image: Optional[str] = None
gallery_images: list[str] = []
specs: dict[str, str] = {}
discount_amount: Optional[float] = None
discount_percent: Optional[float] = None
@@ -47,6 +60,7 @@ class ProductCreate(BaseModel):
url: str
title: Optional[str] = None
category: Optional[str] = None
type: Optional[str] = None
description: Optional[str] = None
currency: Optional[str] = None
msrp: Optional[float] = None
@@ -56,6 +70,7 @@ class ProductUpdate(BaseModel):
url: Optional[str] = None
title: Optional[str] = None
category: Optional[str] = None
type: Optional[str] = None
description: Optional[str] = None
currency: Optional[str] = None
msrp: Optional[float] = None
@@ -208,6 +223,36 @@ class VersionResponse(BaseModel):
api_version: str
class ClassificationRuleOut(BaseModel):
id: int
category: Optional[str] = None
type: Optional[str] = None
keywords: list[str] = Field(default_factory=list)
sort_order: int = 0
is_active: bool = True
class ClassificationRuleCreate(BaseModel):
category: Optional[str] = None
type: Optional[str] = None
keywords: list[str] = Field(default_factory=list)
sort_order: Optional[int] = 0
is_active: Optional[bool] = True
class ClassificationRuleUpdate(BaseModel):
category: Optional[str] = None
type: Optional[str] = None
keywords: Optional[list[str]] = None
sort_order: Optional[int] = None
is_active: Optional[bool] = None
class ClassificationOptionsOut(BaseModel):
categories: list[str] = Field(default_factory=list)
types: list[str] = Field(default_factory=list)
class BackendLogEntry(BaseModel):
time: datetime
level: str