fix(models): added working categories and products model

This commit is contained in:
Black_Raven committed 2026-03-22 16:52:42 +03:00
1 parent df876012ba
commit 0439ccd6d9
4 files changed
+29 -109

No files matched your search

+12 -22
View File
@@ -1,30 +1,20 @@
from typing import List, Optional, Dict, Any
from pydantic import BaseModel from pydantic import BaseModel
from typing import Optional
from datetime import datetime class AttributeValue(BaseModel):
id: int
val: str
class Attribute(BaseModel):
id: int
name: str
vals: List[AttributeValue]
class Category(BaseModel): class Category(BaseModel):
id: int id: int
name: str name: str
description: Optional[str] = None image: Optional[str] = None
image_path: Optional[str] = None atributes: List[Attribute] = []
class Config: class Config:
from_attributes = True from_attributes = True
class CategoryCreate(BaseModel):
name: str
description: Optional[str] = None
parent_id: Optional[int] = None
image_path: Optional[str] = None
page_number: int = 1
created_at: datetime = None
class CategoryUpdate(BaseModel):
name: Optional[str] = None
description: Optional[str] = None
parent_id: Optional[int] = None
image_path: Optional[str] = None
page_number: Optional[int] = None
created_at: datetime = None
-24
View File
@@ -1,24 +0,0 @@
from pydantic import BaseModel
from typing import Optional
class Filter(BaseModel):
id: int
name: str
filter_key: str
filter_type: str
class Config:
from_attributes = True
class FilterCreate(BaseModel):
name: str
filter_key: str
filter_type: str
class FilterUpdate(BaseModel):
name: Optional[str] = None
filter_key: Optional[str] = None
filter_type: Optional[str] = None
+17 -41
View File
@@ -1,53 +1,29 @@
from typing import List, Optional, Dict, Any
from pydantic import BaseModel from pydantic import BaseModel
from typing import Optional
from datetime import datetime
class ProductAttributes(BaseModel):
color: Optional[str] = None
amount: Optional[str] = None
size: Optional[str] = None
diameter: Optional[int] = None
wall_thickness: Optional[float] = None
length: Optional[int] = None
stiffness_class: Optional[str] = None
application_type: Optional[str] = None
class Product(BaseModel): class Product(BaseModel):
id: int id: int
name: str name: str
full_name: str
description: Optional[str] = None description: Optional[str] = None
category_id: int price: Optional[float] = None
diameter: Optional[int] = None categoryId: int
wall_thickness: Optional[float] = None images: List[str] = []
length: Optional[int] = None attributes: ProductAttributes = ProductAttributes()
color: Optional[str] = None inStock: bool = True
application_type: Optional[str] = None
stiffness_class: Optional[str] = None
image_path: Optional[str] = None
page_number: int = 1
created_at: datetime
class Config: class Config:
from_attributes = True from_attributes = True
class ProductDetail(Product):
class ProductCreate(BaseModel):
name: str
full_name: str
description: Optional[str] = None
category_id: int
diameter: Optional[int] = None
wall_thickness: Optional[float] = None
length: Optional[int] = None
color: Optional[str] = None
application_type: Optional[str] = None
stiffness_class: Optional[str] = None
image_path: Optional[str] = None
page_number: int = 1
class ProductUpdate(BaseModel):
name: Optional[str] = None
full_name: Optional[str] = None full_name: Optional[str] = None
description: Optional[str] = None created_at: Optional[str] = None
category_id: Optional[int] = None
diameter: Optional[int] = None
wall_thickness: Optional[float] = None
length: Optional[int] = None
color: Optional[str] = None
application_type: Optional[str] = None
stiffness_class: Optional[str] = None
image_path: Optional[str] = None
page_number: Optional[int] = None
-22
View File
@@ -1,22 +0,0 @@
from pydantic import BaseModel
from typing import Optional
class ProductFilter(BaseModel):
id: int
product_id: int
filter_key: str
value: str
class Config:
from_attributes = True
class ProductFilterCreate(BaseModel):
product_id: int
filter_key: str
value: str
class ProductFilterUpdate(BaseModel):
value: Optional[str] = None