feat: cards, attributes and modules

This commit is contained in:
2025-02-19 14:46:31 +04:00
parent a509a3a586
commit 1af78ce08a
61 changed files with 3212 additions and 2795 deletions

43
schemas/attribute.py Normal file
View 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