71 lines
1.4 KiB
Python
71 lines
1.4 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
|
|
|
|
|
|
class SubscribeToNewPoolAnswerEnum(str, enum.Enum):
|
|
YES = "yes"
|
|
NO = "no"
|
|
|
|
|
|
class NotifyNewPoolCallbackData(CallbackData, prefix="snp"):
|
|
user_id: uuid.UUID
|
|
pool_id: uuid.UUID
|
|
answer: SubscribeToNewPoolAnswerEnum
|