Files
shveitechbot/dto/catalogue.py

41 lines
851 B
Python

from dataclasses import dataclass
from enum import Enum
from typing import Optional, Union
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: Optional[CatalogueType] = None
category: Optional[Category] = None
children: Optional[list[Category]] = None
products: Optional[list[Product]] = None
page: int = 0
parent_id: Union[int, str, None] = None
has_next: bool = False
show_menu: bool = False
@dataclass
class NewCatalogueElement:
msg: Message
parent_id: Union[int, str]
@dataclass
class CategoryActionContext(NewCatalogueElement): ...
@dataclass
class ProductActionContext(NewCatalogueElement): ...