60 lines
1.2 KiB
Python
60 lines
1.2 KiB
Python
import enum
|
|
import uuid
|
|
|
|
from aiogram.filters.callback_data import CallbackData
|
|
|
|
|
|
class PaginatorCallbackData(CallbackData, prefix=""):
|
|
page: int = 1
|
|
|
|
|
|
class MenuCallbackData(CallbackData, prefix="menu"):
|
|
pass
|
|
|
|
|
|
class SubscriptionsCallbackData(PaginatorCallbackData, prefix="subscriptions"):
|
|
pass
|
|
|
|
|
|
class NewSubscriptionCallbackData(CallbackData, prefix="new_subscription"):
|
|
pass
|
|
|
|
|
|
class ConfirmAnswerEnum(str, enum.Enum):
|
|
YES = "yes"
|
|
NO = "no"
|
|
|
|
|
|
class NewSubscriptionConfirmCallbackData(CallbackData, prefix="new_subscription_confirm"):
|
|
answer: ConfirmAnswerEnum
|
|
|
|
|
|
class SubscriptionActionEnum(str, enum.Enum):
|
|
SHOW = "show"
|
|
DELETE = "delete"
|
|
EDIT = "edit"
|
|
BACK = "back"
|
|
|
|
|
|
class SubscriptionCallbackData(CallbackData, prefix="subscription"):
|
|
to_user_id: uuid.UUID
|
|
action: SubscriptionActionEnum = SubscriptionActionEnum.SHOW
|
|
|
|
|
|
class PoolsCallbackData(PaginatorCallbackData, prefix="pools"):
|
|
pass
|
|
|
|
|
|
class PoolsBackCallbackData(CallbackData, prefix="pools_back"):
|
|
pass
|
|
|
|
|
|
class PoolActionEnum(str, enum.Enum):
|
|
SHOW = "show"
|
|
CHOOSE = "choose"
|
|
|
|
|
|
class PoolCallbackData(CallbackData, prefix="pool"):
|
|
id: uuid.UUID
|
|
action: PoolActionEnum = PoolActionEnum.SHOW
|