41 lines
812 B
Python
41 lines
812 B
Python
from dataclasses import dataclass
|
|
from enum import Enum
|
|
|
|
from aiogram.types import Message
|
|
|
|
from db.models import Category
|
|
from db.models.products import Product
|
|
|
|
|
|
class CatalogueType(Enum):
|
|
CATEGORIES = "categories"
|
|
PRODUCTS = "products"
|
|
EMPTY = "empty"
|
|
|
|
|
|
@dataclass
|
|
class CatalogueView:
|
|
view_type: CatalogueType | None = None
|
|
category: Category | None = None
|
|
children: list[Category] | None = None
|
|
products: list[Product] | None = None
|
|
page: int = 0
|
|
total: int = 0
|
|
parent_id: int | str | None = None
|
|
has_next: bool = False
|
|
show_menu: bool = False
|
|
|
|
|
|
@dataclass
|
|
class NewCatalogueElement:
|
|
msg: Message
|
|
parent_id: int | str
|
|
|
|
|
|
@dataclass
|
|
class CategoryActionContext(NewCatalogueElement): ...
|
|
|
|
|
|
@dataclass
|
|
class ProductActionContext(NewCatalogueElement): ...
|