from aiogram.fsm.state import State, StatesGroup


class LoginStates(StatesGroup):
    waiting_code = State()


class CampaignStates(StatesGroup):
    waiting_origin = State()
    waiting_destination = State()
    waiting_target_country = State()
    waiting_stats = State()
    waiting_eta = State()
    waiting_vanguard = State()
    waiting_confirmation = State()


class AttackStates(StatesGroup):
    # ``waiting_target`` is retained so a form that was already open during
    # deployment is not made impossible to recover.  New forms use the two
    # explicit target steps below.
    waiting_target = State()
    waiting_target_city = State()
    waiting_target_country = State()
    waiting_stats = State()
    waiting_confirmation = State()


class TweetStates(StatesGroup):
    waiting_text = State()
    waiting_file = State()
    waiting_confirmation = State()


class AdminStates(StatesGroup):
    waiting_code = State()
    waiting_chat_id = State()
    waiting_photo = State()
    waiting_global_photo = State()
    waiting_admin_identity = State()


class ActionStates(StatesGroup):
    waiting_time = State()
    # Compatibility for a form opened by the previous release.
    waiting_ambush_army = State()
    waiting_ambush_stats = State()
    waiting_confirmation = State()
