158 lines
7.7 KiB
TypeScript
158 lines
7.7 KiB
TypeScript
import type { OperatorRole, ServerStatus, SubscriptionStatus, IncidentSeverity, IncidentStatus, AuditActionType } from '../contracts';
|
||
|
||
export const RU_ROLES: Record<OperatorRole, { label: string; shortLabel: string; description: string }> = {
|
||
platform_owner: {
|
||
label: 'Владелец платформы',
|
||
shortLabel: 'Владелец',
|
||
description: 'Полный доступ ко всей инфраструктуре, биллингу, лицензиям и управлению платформой',
|
||
},
|
||
platform_admin: {
|
||
label: 'Администратор платформы',
|
||
shortLabel: 'Админ',
|
||
description: 'Управление организациями, инсталляциями, серверами и техническими параметрами',
|
||
},
|
||
support_operator: {
|
||
label: 'Оператор поддержки',
|
||
shortLabel: 'Поддержка',
|
||
description: 'Диагностика организаций, сброс кэша, техническая помощь и расследования',
|
||
},
|
||
billing_manager: {
|
||
label: 'Менеджер биллинга',
|
||
shortLabel: 'Биллинг',
|
||
description: 'Финансовые показатели, тарифы, подписки, продления и льготные периоды',
|
||
},
|
||
security_auditor: {
|
||
label: 'Аудитор безопасности',
|
||
shortLabel: 'Аудитор',
|
||
description: 'Только чтение: сквозной журнал аудита (SHA-256), события безопасности и логи',
|
||
},
|
||
release_manager: {
|
||
label: 'Релиз-инженер',
|
||
shortLabel: 'Релизы',
|
||
description: 'Управление версиями модулей, каталогом расширений и плановыми обновлениями',
|
||
},
|
||
};
|
||
|
||
export const RU_SERVER_STATUS: Record<ServerStatus, { label: string; badgeVariant: 'success' | 'warning' | 'danger' | 'neutral' }> = {
|
||
healthy: { label: 'Работает нормально', badgeVariant: 'success' },
|
||
degraded: { label: 'Работает с ограничениями', badgeVariant: 'warning' },
|
||
offline: { label: 'Недоступен', badgeVariant: 'danger' },
|
||
};
|
||
|
||
export const RU_SUBSCRIPTION_STATUS: Record<SubscriptionStatus, { label: string; badgeVariant: 'success' | 'warning' | 'danger' | 'info' | 'neutral' }> = {
|
||
trial: { label: 'Пробный период', badgeVariant: 'info' },
|
||
active: { label: 'Активна', badgeVariant: 'success' },
|
||
grace: { label: 'Льготный период', badgeVariant: 'warning' },
|
||
suspended: { label: 'Приостановлена', badgeVariant: 'danger' },
|
||
canceled: { label: 'Отменена', badgeVariant: 'neutral' },
|
||
};
|
||
|
||
export const RU_INCIDENT_SEVERITY: Record<IncidentSeverity, { label: string; short: string }> = {
|
||
P0_CRITICAL: { label: 'P0 Критическая авария', short: 'P0 Критическая' },
|
||
P1_MAJOR: { label: 'P1 Серьёзный инцидент', short: 'P1 Серьёзный' },
|
||
P2_DEGRADED: { label: 'P2 Ограничение работы', short: 'P2 Деградация' },
|
||
P3_INFO: { label: 'P3 Информационный', short: 'P3 Инфо' },
|
||
};
|
||
|
||
export const RU_INCIDENT_STATUS: Record<IncidentStatus, string> = {
|
||
investigating: 'Расследуется',
|
||
identified: 'Локализован',
|
||
monitoring: 'Мониторинг устранения',
|
||
resolved: 'Устранён',
|
||
};
|
||
|
||
export const RU_AUDIT_ACTION: Record<AuditActionType, string> = {
|
||
suspend_tenant: 'Приостановка организации',
|
||
resume_tenant: 'Возобновление организации',
|
||
drain_node: 'Вывод сервера на обслуживание (Drain)',
|
||
enable_maintenance: 'Включение режима тех. обслуживания',
|
||
disable_maintenance: 'Выключение режима тех. обслуживания',
|
||
grant_grace_period: 'Предоставление льготного периода',
|
||
restart_gateway: 'Перезапуск шлюза обмена',
|
||
invalidate_cache: 'Инвалидация распределённого кэша',
|
||
rollback_module: 'Откат версии модуля',
|
||
circuit_breaker_trip: 'Аварийное срабатывание Circuit Breaker',
|
||
circuit_breaker_reset: 'Восстановление связи мониторинга',
|
||
};
|
||
|
||
export const RU_MODULE_CATEGORY: Record<string, string> = {
|
||
core: 'Базовые модули',
|
||
trade: 'Торговля и продажи',
|
||
kitchen: 'Кухня и производство',
|
||
finance: 'Финансы и учёт',
|
||
management: 'Управление персоналом',
|
||
analytics: 'Аналитика и AI',
|
||
};
|
||
|
||
export const RU_PLATFORMS: Record<string, string> = {
|
||
web: 'Веб-версия',
|
||
desktop: 'Компьютеры (Desktop)',
|
||
android: 'Android-устройства',
|
||
};
|
||
|
||
export const RU_THEMES = {
|
||
'soft-light': 'Мягкая светлая',
|
||
light: 'Классическая светлая',
|
||
dark: 'Тёмная',
|
||
} as const;
|
||
|
||
export const RU_UI = {
|
||
brand: 'Krona Control Center',
|
||
tagline: 'Кабинет оператора платформы',
|
||
scope: 'Контур платформы',
|
||
productionScope: 'Боевой контур (Production)',
|
||
gateTitle: 'Защита доступа оператора',
|
||
gateSubtitle: 'Демонстрационный стенд закрытого кабинета оператора платформы',
|
||
gatePinPlaceholder: 'Введите код доступа (например: krona2026 или 8492)...',
|
||
gateSubmit: 'Войти в консоль оператора',
|
||
gateDemoLogin: 'Быстрый демо-вход в 1 клик (Режим ревьюера)',
|
||
gateError: 'Неверный код доступа. Попробуйте krona2026 или 8492.',
|
||
forbiddenTitle: 'Доступ ограничен политикой безопасности',
|
||
forbiddenDescription: 'У текущей роли оператора недостаточно прав для выполнения этого действия.',
|
||
forbiddenBack: 'Вернуться в Обзор',
|
||
nav: {
|
||
overview: 'Обзор',
|
||
organizations: 'Организации',
|
||
incidents: 'Инциденты',
|
||
servers: 'Серверы',
|
||
more: 'Ещё',
|
||
billing: 'Подписки и платежи',
|
||
modules: 'Каталог модулей',
|
||
installations: 'Установки',
|
||
announcements: 'Оповещения',
|
||
audit: 'Журнал аудита',
|
||
settings: 'Настройки оператора',
|
||
},
|
||
overviewTabs: {
|
||
attention: 'Требует внимания',
|
||
metrics: 'Показатели',
|
||
infrastructure: 'Инфраструктура',
|
||
},
|
||
filters: {
|
||
title: 'Фильтры',
|
||
apply: 'Применить',
|
||
reset: 'Сбросить фильтры',
|
||
searchPlaceholder: 'Поиск...',
|
||
statusAll: 'Все статусы',
|
||
roleAll: 'Все роли',
|
||
},
|
||
inspector: {
|
||
title: 'Инспектор объекта 360°',
|
||
tabOverview: 'Сводка',
|
||
tabModules: 'Модули',
|
||
tabInstallations: 'Установки',
|
||
tabBilling: 'Биллинг',
|
||
close: 'Закрыть',
|
||
},
|
||
system: {
|
||
synced: 'Синхронизировано',
|
||
syncing: 'Синхронизация...',
|
||
nodeLabel: 'Узел',
|
||
resetDemo: 'Сбросить демоданные',
|
||
simulateOutage: 'Имитировать сбой мониторинга',
|
||
restoreMonitoring: 'Восстановить мониторинг',
|
||
themeLabel: 'Тема оформления',
|
||
exitToClient: 'Перейти в Krona Business OS',
|
||
operatorProfile: 'Профиль оператора',
|
||
},
|
||
};
|