feat: cards, attributes and modules
This commit is contained in:
43
schemas/attribute.py
Normal file
43
schemas/attribute.py
Normal file
@@ -0,0 +1,43 @@
|
||||
import pickle
|
||||
from datetime import datetime, date
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import field_validator
|
||||
|
||||
from schemas.base import BaseSchema
|
||||
|
||||
|
||||
# region Entities
|
||||
|
||||
class AttributeTypeSchema(BaseSchema):
|
||||
id: int
|
||||
type: str
|
||||
name: str
|
||||
is_deleted: bool
|
||||
|
||||
|
||||
class AttributeSchema(BaseSchema):
|
||||
id: int
|
||||
label: str
|
||||
name: str
|
||||
is_applicable_to_group: bool
|
||||
is_nullable: bool
|
||||
default_value: Optional[bool | int | float | str | date | datetime]
|
||||
type: AttributeTypeSchema
|
||||
|
||||
@field_validator("default_value", mode="before")
|
||||
def validate_default_value(cls, value: Optional[bytes]):
|
||||
return pickle.loads(value) if value else None
|
||||
|
||||
|
||||
class CardAttributeSchema(BaseSchema):
|
||||
value: Optional[bool | int | float | str | date | datetime]
|
||||
card_id: int
|
||||
attribute: AttributeSchema
|
||||
|
||||
@field_validator("value", mode="before")
|
||||
def validate_value(cls, value: Optional[bytes]):
|
||||
return pickle.loads(value) if value else None
|
||||
|
||||
|
||||
# endregion
|
||||
Reference in New Issue
Block a user