namespace LazyBear.MCP.TUI.Localization;

/// <summary>
/// Все строки TUI для одной локали.
/// При добавлении новой строки: добавить свойство сюда и перевод в оба статических экземпляра.
/// </summary>
public sealed record TuiResources
{
    // ── Подсказка и вкладки ──────────────────────────────────────────────────
    public string ProjectTitle  { get; init; } = "";
    public string HintBar       { get; init; } = "";
    public string TabOverview   { get; init; } = "";
    public string TabLogs       { get; init; } = "";
    public string TabSettings   { get; init; } = "";
    public string HelpButtonLabel { get; init; } = "";
    public string HelpStatusHint  { get; init; } = "";
    public string HelpModalTitle  { get; init; } = "";
    public string HelpCloseHint   { get; init; } = "";

    // ── Dashboard ────────────────────────────────────────────────────────────
    public string OverviewTitle        { get; init; } = "";
    public string OverviewHint         { get; init; } = "";
    public string OverviewEmpty        { get; init; } = "";
    public string DashboardEndpointLabel { get; init; } = "";
    public string StateOn              { get; init; } = "";
    public string StateOff             { get; init; } = "";
    public string FooterModule         { get; init; } = "";
    public string FooterTools          { get; init; } = "";

    // ── Logs ─────────────────────────────────────────────────────────────────
    public string LogsTitle        { get; init; } = "";
    public string LogsHint         { get; init; } = "";
    public string LogsEmpty        { get; init; } = "";
    public string LogsPlaceholder  { get; init; } = "";
    public string LogsSticky       { get; init; } = "";
    public string LogsManual       { get; init; } = "";
    public string FilterLabel      { get; init; } = "";
    public string FilterAll        { get; init; } = "";

    // ── Settings ─────────────────────────────────────────────────────────────
    public string SettingsTitle       { get; init; } = "";
    public string SettingsHint        { get; init; } = "";
    public string SettingsEmpty       { get; init; } = "";
    public string SettingsUnavailable { get; init; } = "";
    public string ModuleOff           { get; init; } = "";
    public string ModuleOffPreserved  { get; init; } = "";

    // ── Локали ───────────────────────────────────────────────────────────────

    public static readonly TuiResources En = new()
    {
        ProjectTitle    = "LazyBear MCP",
        HintBar         = "Tab/Shift+Tab: switch tabs  |  H: help  |  L: language  |  Q: quit",
        TabOverview     = "Dashboard",
        TabLogs         = "Logs",
        TabSettings     = "Settings",
        HelpButtonLabel = "Help",
        HelpStatusHint  = "H: help",
        HelpModalTitle  = "Keyboard Shortcuts",
        HelpCloseHint   = "H / Esc: close",

        OverviewTitle        = "Dashboard",
        OverviewHint         = "Up/Down: select module.  Enter: open settings.",
        OverviewEmpty        = "No modules registered.",
        DashboardEndpointLabel = "MCP Endpoint",
        StateOn              = "ON",
        StateOff             = "OFF",
        FooterModule         = "Module",
        FooterTools          = "Tools",

        LogsTitle       = "Runtime Logs",
        LogsHint        = "Left/Right: filter  |  Up/Down: scroll  |  PageUp/Down: page",
        LogsEmpty       = "No log entries yet.",
        LogsPlaceholder = "Incoming log entries will appear here.",
        LogsSticky      = "sticky",
        LogsManual      = "manual",
        FilterLabel     = "Filter",
        FilterAll       = "All",

        SettingsTitle       = "Tool Registry",
        SettingsHint        = "Up/Down: select  |  Left/Right: expand/collapse  |  Space: toggle",
        SettingsEmpty       = "No modules available.",
        SettingsUnavailable = "Runtime enable/disable settings are unavailable.",
        ModuleOff           = "(module off)",
        ModuleOffPreserved  = "(module is OFF, tool state is preserved)"
    };

    public static readonly TuiResources Ru = new()
    {
        ProjectTitle    = "LazyBear MCP",
        HintBar         = "Tab/Shift+Tab: вкладки  |  H: справка  |  L: язык  |  Q: выход",
        TabOverview     = "Dashboard",
        TabLogs         = "Логи",
        TabSettings     = "Настройки",
        HelpButtonLabel = "Справка",
        HelpStatusHint  = "H: справка",
        HelpModalTitle  = "Горячие клавиши",
        HelpCloseHint   = "H / Esc: закрыть",

        OverviewTitle        = "Dashboard",
        OverviewHint         = "Вверх/вниз: выбор модуля.  Enter: открыть настройки.",
        OverviewEmpty        = "Нет зарегистрированных модулей.",
        DashboardEndpointLabel = "MCP Endpoint",
        StateOn              = "ВКЛ",
        StateOff             = "ВЫКЛ",
        FooterModule         = "Модуль",
        FooterTools          = "Инструменты",

        LogsTitle       = "Логи",
        LogsHint        = "Лево/право: фильтр  |  Вверх/вниз: прокрутка  |  PageUp/Down: страница",
        LogsEmpty       = "Записей пока нет.",
        LogsPlaceholder = "Новые записи будут появляться здесь.",
        LogsSticky      = "следить",
        LogsManual      = "вручную",
        FilterLabel     = "Фильтр",
        FilterAll       = "Все",

        SettingsTitle       = "Реестр инструментов",
        SettingsHint        = "Вверх/вниз: выбор  |  Лево/право: развернуть/свернуть  |  Space: вкл/выкл",
        SettingsEmpty       = "Нет доступных модулей.",
        SettingsUnavailable = "Настройки включения/выключения недоступны.",
        ModuleOff           = "(модуль выкл)",
        ModuleOffPreserved  = "(модуль ВЫКЛ, состояние инструментов сохранено)"
    };
}
