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