fix(models): added working categories and products model
This commit is contained in:
1 parent
df876012ba
commit
0439ccd6d9
4 files changed
+29
-109
No files matched your search
+12
-22
@@ -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
|
|
||||||
@@ -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
@@ -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
|
|
||||||
@@ -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
|
|
||||||
Reference in new issue
Block a user