#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Модуль с функциями для генерации справочных сообщений о командах бота
"""

import logging
from telegram import Update
from telegram.ext import ContextTypes
from telegram.constants import ParseMode

logger = logging.getLogger(__name__)

async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    """
    Обработчик команды /help - выводит справку по всем доступным командам
    """
    user_id = update.effective_user.id if update.effective_user else "Unknown"
    username = update.effective_user.username if update.effective_user else "Unknown"
    
    logger.info(f"User {user_id} (@{username}) requested help")
    
    help_text = (
        "🤖 <b>Synology Power Control Bot</b>\n\n"
        "<b>БАЗОВЫЕ КОМАНДЫ:</b>\n"
        "/status - Проверить состояние NAS\n"
        "/power - Управление питанием NAS (меню)\n"
        "/reboot - Перезагрузка NAS (с подтверждением)\n"
        "/sleep - Перевод NAS в спящий режим (с подтверждением)\n\n"
        
        "<b>ИНФОРМАЦИОННЫЕ КОМАНДЫ:</b>\n"
        "/system - Информация о системе\n"
        "/storage - Состояние хранилища\n"
        "/shares - Список общих папок\n"
        "/load - Нагрузка на систему\n"
        "/security - Информация о безопасности\n"
        "/temperature - Температура устройства\n"
        "/processes - Список активных процессов\n"
        "/network - Сетевая информация\n\n"
        
        "<b>РАСШИРЕННЫЕ КОМАНДЫ:</b>\n"
        "/schedule - Расписание питания\n"
        "/browse - Просмотр файлов\n"
        "/search <запрос> - Поиск файлов\n"
        "/updates - Проверка обновлений\n"
        "/backup - Статус резервного копирования\n"
        "/quota - Квоты пользователей\n\n"
        
        "<b>БЫСТРЫЕ КОМАНДЫ:</b>\n"
        "/quickreboot - Быстрая перезагрузка\n"
        "/wakeup - Пробуждение NAS (WOL)\n\n"
        
        "<b>СЛУЖЕБНЫЕ КОМАНДЫ:</b>\n"
        "/checkapi - Проверка API\n"
        "/help - Эта справка\n"
    )
    
    if update.message:
        await update.message.reply_text(help_text, parse_mode=ParseMode.HTML)
    elif update.callback_query:
        await update.callback_query.message.reply_text(help_text, parse_mode=ParseMode.HTML)

async def start_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    """
    Обработчик команды /start - приветствие и краткая информация
    """
    user_id = update.effective_user.id if update.effective_user else "Unknown"
    username = update.effective_user.username if update.effective_user else "Unknown"
    
    logger.info(f"User {user_id} (@{username}) started the bot")
    
    welcome_text = (
        "👋 <b>Добро пожаловать в Synology Power Control Bot!</b>\n\n"
        "С помощью этого бота вы можете управлять питанием вашего Synology NAS "
        "и получать различную информацию о его состоянии.\n\n"
        "Для просмотра списка доступных команд используйте /help\n\n"
        "Базовые команды:\n"
        "• /status - Проверить состояние NAS\n"
        "• /power - Управление питанием\n"
        "• /system - Информация о системе\n"
        "• /storage - Состояние хранилища"
    )
    
    await update.message.reply_text(welcome_text, parse_mode=ParseMode.HTML)
