# app/src/core/event_titles.py

from __future__ import annotations


EVENT_TITLES = {
    # Сигналы
    "signal_summary": "Сигнал",
    "signal_ready": "Сигнал",

    # Execution
    "position_opened": "Позиция",
    "position_closed": "Позиция",
    "position_flipped": "Позиция",
    "position_flip_blocked": "Позиция",

    # Настройки
    "auto_settings_updated": "Автоторговля",
    "auto_status_changed": "Автоторговля",
    "risk_settings_updated": "Защита",

    # Аналитика автоторговли
    "market_state_changed": "Автоторговля",
    "market_volatility_changed": "Автоторговля",

    # Рыночные данные runtime
    "market_monitor_started": "Автоторговля",
    "market_monitor_stopped": "Автоторговля",
    "market_stream_connected": "Автоторговля",
    "market_stream_disconnected": "Автоторговля",
    "market_symbol_changed": "Автоторговля",

    # Мониторинг позиций
    "entry_blocked": "Вход в позицию",

    # Журнал
    "journal_exported": "Журнал",
    "journal_export_error": "Журнал",
    "journal_cleared": "Журнал",

    # Уведомления
    "notification_sent": "Уведомление",
    "notification_error": "Уведомление",

    # Приложение
    "app_started": "Приложение",
    "app_bootstrap_failed": "Приложение",

    # Legacy
    "app_start": "Приложение",

    "journal_open_requested": "Журнал",
    "journal_export_csv_success": "Журнал",
    "journal_export_csv_error": "Журнал",
    "journal_export_xlsx_success": "Журнал",
    "journal_export_xlsx_error": "Журнал",
    "journal_cleared_old": "Журнал",
    "journal_debug_changed": "Журнал",

    "system_open_requested": "Система",
    "system_open_alert": "Система",
    "system_open_success": "Система",
    "system_retry": "Система",
    "system_about_opened": "Система",

    "portfolio_open_requested": "Портфель",
    "portfolio_open_success": "Портфель",
    "portfolio_open_error": "Портфель",
    "portfolio_partial_estimate": "Портфель",

    "exchange_request_error": "Биржа",

    "exchange_auth_error": "Аккаунт",
    "exchange_auth_restored": "Аккаунт",
    "exchange_time_sync_error": "Время биржи",
    "exchange_time_sync_restored": "Время биржи",

    "balance_summary_loaded": "Баланс",
    "balance_summary_error": "Баланс",

    "runtime_expired": "Runtime",

    "market_status_unavailable": "Автоторговля",
    "market_status_restored": "Автоторговля",
    "market_closed": "Автоторговля",
    "market_rest_fallback_available": "Автоторговля",
    "market_rest_fallback_unavailable": "Автоторговля",
    
    "ws_depth_alive": "WebSocket debug",
}


def event_title(event_type: object) -> str:
    value = str(event_type or "").strip()

    if not value:
        return "Событие"

    return EVENT_TITLES.get(value, "Событие")