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
+31 -111

No files matched your search

+13 -23
View File
@@ -1,30 +1,20 @@
from typing import List, Optional, Dict, Any
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):
id: int
name: str
description: Optional[str] = None
image_path: Optional[str] = None
image: Optional[str] = None
atributes: List[Attribute] = []
class Config:
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
+18 -42
View File
@@ -1,53 +1,29 @@
from typing import List, Optional, Dict, Any
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):
id: int
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
created_at: datetime
price: Optional[float] = None
categoryId: int
images: List[str] = []
attributes: ProductAttributes = ProductAttributes()
inStock: bool = True
class Config:
from_attributes = True
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
class ProductDetail(Product):
full_name: Optional[str] = None
description: 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
created_at: Optional[str] = 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