from __future__ import annotations

from core.protocol import IncomingCommand, OutgoingMessage

HELP_TEXT = "\n".join(
    [
        "Команды",
        "",
        "!new [название]  создать новый чат",
        "!chats  список активных чатов",
        "!rename <название>  переименовать текущий чат",
        "!archive  архивировать текущий чат",
        "",
        "!clear  сбросить контекст текущего чата",
        "",
        "!list  показать файлы в очереди",
        "!remove <n>  удалить файл из очереди",
        "!remove all  очистить очередь файлов",
        "",
        "!yes / !no  подтвердить или отменить действие",
        "!help  эта справка",
    ]
)


MVP_UNAVAILABLE_TEXT = (
    "Эта команда скрыта в MVP и сейчас недоступна. "
    "Используй !help для списка поддерживаемых команд."
)


async def handle_settings(
    event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
) -> list:
    return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]


async def handle_help(event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr) -> list:
    return [OutgoingMessage(chat_id=event.chat_id, text=HELP_TEXT)]


async def handle_settings_skills(
    event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
) -> list:
    return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]


async def handle_settings_connectors(
    event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
) -> list:
    return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]


async def handle_settings_soul(
    event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
) -> list:
    return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]


async def handle_settings_safety(
    event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
) -> list:
    return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]


async def handle_settings_plan(
    event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
) -> list:
    return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]


async def handle_settings_status(
    event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
) -> list:
    return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]


async def handle_settings_whoami(
    event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
) -> list:
    return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]


async def handle_toggle_skill(event, auth_mgr, platform, chat_mgr, settings_mgr) -> list:
    return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]


async def handle_unknown_command(
    event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
) -> list:
    return [
        OutgoingMessage(
            chat_id=event.chat_id,
            text="Неизвестная команда. Используй !help для списка поддерживаемых команд.",
        )
    ]
