feat: AI model selector + i18n nav labels (RU/EN) on new modules
AI model selector:
- AiAssistantService::MODEL_DEFAULTS and MODEL_OPTIONS const tables (3 picks per
provider: Claude Opus 4.7 / Sonnet 4.6 / Haiku 4.5, OpenAI 4o / 4o-mini,
Gemini 1.5 Pro / Flash). Default upgraded from Sonnet 4.5 → Sonnet 4.6.
- modelFor(provider, company?) resolves tenant override > global default.
- All 8 hardcoded model strings replaced with modelFor() across callClaude
(chat with tool-use), callOpenAI, callGemini (chat), postClaude/postOpenAI/
postGemini (single-shot), and OcrInvoiceService.
- Settings page adds 3 model selectors per provider with persistence at
settings.ai.models.{claude,gpt,gemini}.
i18n nav labels:
- TireSet / Bodyshop / Subcontractor / SubcontractJob / PricingCoefficient /
ShopCustomer resources: getNavigationLabel / getNavigationGroup /
getModelLabel / getPluralModelLabel return __()-wrapped strings.
- 20 keys added to lang/ru.json and lang/en.json.
Tests (4 new): default model, tenant override wins, unknown provider falls
back to claude default, options dictionary contains each default key.
Full suite: 134 passed.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+21
-2
@@ -21,7 +21,6 @@
|
||||
"Status": "Статус",
|
||||
"Actions": "Действия",
|
||||
"Notifications": "Уведомления",
|
||||
|
||||
"Clienți": "Клиенты",
|
||||
"Mașini": "Машины",
|
||||
"Cereri": "Заявки",
|
||||
@@ -53,5 +52,25 @@
|
||||
"Jurnal": "Журнал",
|
||||
"Telefonie": "Телефония",
|
||||
"Finanțe": "Финансы",
|
||||
"Site PSauto": "Сайт"
|
||||
"Site PSauto": "Сайт",
|
||||
"Seturi anvelope": "Шины (комплекты)",
|
||||
"Anvelope": "Шины",
|
||||
"set anvelope": "комплект шин",
|
||||
"seturi anvelope": "комплекты шин",
|
||||
"Tinichigerie / Detailing": "Кузов / Детейлинг",
|
||||
"Tinichigerie": "Кузовной цех",
|
||||
"lucrare caroserie": "кузовная работа",
|
||||
"lucrări caroserie": "кузовные работы",
|
||||
"Subcontractori": "Субподрядчики",
|
||||
"Subcontractare": "Субподряд",
|
||||
"subcontractor": "субподрядчик",
|
||||
"Lucrări terți": "Работы у третьих лиц",
|
||||
"lucrare terți": "работа у третьих лиц",
|
||||
"lucrări terți": "работы у третьих лиц",
|
||||
"Coeficienți preț": "Ценовые коэффициенты",
|
||||
"coeficient": "коэффициент",
|
||||
"Magazin": "Магазин",
|
||||
"Clienți magazin": "Клиенты магазина",
|
||||
"client magazin": "клиент магазина",
|
||||
"clienți magazin": "клиенты магазина"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user