"""
bot/states/states.py
----------------------
تمام State های FSM پروژه اینجا تعریف می‌شوند.
"""

from aiogram.fsm.state import State, StatesGroup


# ============================================================
# خرید سرویس
# ============================================================

class PurchaseStates(StatesGroup):
    CHOOSING_PLAN = State()
    WAITING_FOR_SERVICE_NAME = State()
    WAITING_FOR_RECEIPT = State()


# ============================================================
# تمدید سرویس
# ============================================================

class RenewalStates(StatesGroup):
    """روند تمدید سرویس"""

    CHOOSING_SUBSCRIPTION = State()
    CHOOSING_PLAN = State()
    WAITING_FOR_RECEIPT = State()


# ============================================================
# پرداخت
# ============================================================

class PaymentStates(StatesGroup):
    """روند دریافت رسید پرداخت"""

    waiting_receipt = State()


# ============================================================
# پشتیبانی
# ============================================================

class SupportStates(StatesGroup):
    """روند ارتباط با پشتیبانی"""

    WAITING_FOR_MESSAGE = State()


# ============================================================
# ارسال کانفیگ توسط ادمین
# ============================================================

class AdminConfigStates(StatesGroup):
    """روند ارسال اطلاعات سرویس توسط ادمین"""

    # مرحله اول: دریافت کانفیگ
    WAITING_FOR_CONFIG = State()

    # مرحله دوم: دریافت Subscription
    WAITING_FOR_SUBSCRIPTION = State()


# ============================================================
# ارسال کانفیگ تست
# ============================================================

class AdminTestConfigStates(StatesGroup):
    """روند ارسال کانفیگ تست توسط ادمین"""

    WAITING_FOR_TEST_CONFIG = State()


# ============================================================
# پاسخ ادمین به پشتیبانی
# ============================================================

class AdminSupportReplyStates(StatesGroup):
    """روند پاسخ ادمین به تیکت پشتیبانی"""

    WAITING_FOR_REPLY = State()


# ============================================================
# مدیریت پلن‌ها
# ============================================================

class AdminPlanStates(StatesGroup):
    """روند ایجاد / ویرایش پلن توسط ادمین"""

    WAITING_FOR_NAME = State()
    WAITING_FOR_PRICE = State()
    WAITING_FOR_VOLUME = State()
    WAITING_FOR_DURATION = State()
    WAITING_FOR_DESCRIPTION = State()


# ============================================================
# مدیریت آموزش‌ها
# ============================================================

class AdminTutorialStates(StatesGroup):
    """روند ایجاد / ویرایش آموزش توسط ادمین"""

    WAITING_FOR_TITLE = State()
    WAITING_FOR_CONTENT = State()


# ============================================================
# پیام همگانی
# ============================================================

class AdminBroadcastStates(StatesGroup):
    """روند ارسال پیام همگانی"""

    WAITING_FOR_MESSAGE = State()


# ============================================================
# جستجوی کاربر
# ============================================================

class AdminUserSearchStates(StatesGroup):
    """روند جستجوی کاربر توسط ادمین"""

    WAITING_FOR_TELEGRAM_ID = State()