Implement template export/import endpoints and enhance grid generation logic
Added new endpoints for exporting and importing grid configurations in TemplateEndpoints, allowing for better management of template data. Enhanced the GenerateGridCommandHandler to support seasonal layers in grid generation, improving scheduling accuracy during holiday periods. Updated related classes and records to accommodate these changes, ensuring a cohesive integration of new features. Improved documentation for clarity and maintainability.
This commit is contained in:
@@ -430,6 +430,37 @@ export const ru = {
|
||||
addSlotHere: 'Добавить слот',
|
||||
newSlot: 'Новый слот',
|
||||
/** Автосборка сетки по профилю: предпросмотр плана и его создание. */
|
||||
transfer: {
|
||||
action: 'Импорт / экспорт',
|
||||
title: 'Обмен конфигурацией сетки',
|
||||
hint: 'Файл ссылается на группы и стыки по именам, поэтому переносится между каналами и установками. Запрос к ИИ никуда не отправляется — вы копируете его в свою модель и приносите ответ назад вкладкой импорта.',
|
||||
tabs: { export: 'Экспорт', import: 'Импорт', ai: 'Запрос к ИИ' },
|
||||
exportHint:
|
||||
'Выгружает слои, слоты, правила и ссылки на группы и стыки. Годится и как бэкап перед экспериментом, и как образец для модели.',
|
||||
exportAction: 'Скачать файл',
|
||||
exported: 'Файл выгружен',
|
||||
importHint:
|
||||
'Загрузите файл или вставьте JSON — например ответ модели. Незнакомые ссылки не валят импорт: такие слоты пропускаются, и вы увидите их списком.',
|
||||
pickFile: 'Выбрать файл',
|
||||
replace: 'Снести существующие слоты',
|
||||
pastePlaceholder: 'Вставьте JSON конфигурации сетки',
|
||||
importAction: 'Загрузить',
|
||||
imported: 'Создано слотов: {{slots}}, пропущено: {{skipped}}',
|
||||
badJson: 'Это не похоже на JSON — проверьте, что скопирован весь ответ целиком.',
|
||||
warnings: 'Что не удалось разобрать',
|
||||
aiHint:
|
||||
'Соберём запрос: параметры канала, ваши группы и библиотека, ваши референсы и пожелания, плюс схема ответа. Модель вернёт JSON, который загружается вкладкой импорта.',
|
||||
references: 'Референс-каналы',
|
||||
referencesPlaceholder: '2×2, Paramount Comedy',
|
||||
referencesHint:
|
||||
'Через запятую. На их ритм модель будет равняться — длина блоков, прайм, ночь.',
|
||||
notes: 'Пожелания',
|
||||
notesPlaceholder: 'Например: утром детское, вечером кино, ночью — взрослый блок',
|
||||
buildPrompt: 'Собрать запрос',
|
||||
copyPrompt: 'Скопировать',
|
||||
copied: 'Запрос скопирован',
|
||||
aiNext: 'Отправьте это в свою модель, а полученный JSON вставьте во вкладке «Импорт».',
|
||||
},
|
||||
generate: {
|
||||
action: 'Собрать сетку',
|
||||
title: 'Автосборка сетки',
|
||||
@@ -712,6 +743,11 @@ export const ru = {
|
||||
timeWindow: 'Окно суток канала',
|
||||
clearWindow: 'Сбросить',
|
||||
timeWindowHint: 'Пусто — в любое время. Окно может переходить через полночь.',
|
||||
nearHour: 'Рядом с круглым часом',
|
||||
nearHourUnit: 'мин до и после :00',
|
||||
nearHourHint:
|
||||
'0 — без привязки. Сигнал точного времени и джингл ставятся так: врезка играет только в окрестности :00, а не когда-нибудь в этом часе.',
|
||||
badgeNearHour: '±{{minutes}} мин от часа',
|
||||
badgeOnChange: 'на смене',
|
||||
badgeInterval: 'раз в {{minutes}} мин',
|
||||
},
|
||||
@@ -792,6 +828,10 @@ export const ru = {
|
||||
'next.year': 'Год следующего',
|
||||
'next.genre': 'Жанр следующего',
|
||||
'next.time': 'Время старта следующего',
|
||||
'tonight.title': 'Вечерняя программа',
|
||||
'tonight.time': 'Время вечерней программы',
|
||||
'tomorrow.title': 'Программа завтра вечером',
|
||||
'tomorrow.time': 'Время программы завтра',
|
||||
time: 'Время показа заставки',
|
||||
date: 'Дата',
|
||||
weekday: 'День недели',
|
||||
|
||||
Reference in New Issue
Block a user