//! Tauri 命令处理器
//! 集中管理所有 Tauri 命令的注册和处理
//!
use crate::storage::session_storage::*;

use crate::app::commands::*;
use crate::audio::commands::*;
use crate::tray::commands::*;
use crate::window::commands::*;
use tauri::Builder;

/// 注册所有 Tauri 命令
///
/// 将所有可用的 Tauri 命令注册到应用构建器中
///
/// # 参数
/// * `builder` - Tauri 应用构建器
///
/// # 返回值
/// 返回配置了所有命令的应用构建器
pub fn register_commands(builder: Builder<tauri::Wry>) -> Builder<tauri::Wry> {
    builder.invoke_handler(tauri::generate_handler![
        // 会话存储相关命令
        session_storage_get,
        session_storage_set,
        session_storage_remove,
        session_storage_clear,
        session_storage_keys,
        session_storage_has,
        // 应用相关命令
        get_app_version,
        get_tauri_version,
        get_app_name,
        restart_application,
        // 音频相关命令
        play_prompt_tone,
        stop_prompt_tone,
        // 窗口相关命令
        create_float_list_window,
        create_popup_window,
        create_main_window,
        create_meeting_window,
        // 系统托盘相关命令
        update_tray_menu,
    ])
}
