Enhance EffectiveGridBuilder to support background slots and improve scheduling logic
Updated the EffectiveGridBuilder to return an EffectiveGrid containing both scheduled and background slots, allowing for better management of overlapping content. Refactored the ResolveDay method to handle background slots separately, ensuring they fill gaps in the schedule appropriately. Adjusted related components, including GridScheduleGenerator and SchedulePlanner, to accommodate the new structure and improve overall scheduling accuracy. Enhanced documentation and comments for clarity.
This commit is contained in:
@@ -338,8 +338,18 @@ Slot
|
||||
третья. Любая дыра в расписании — просто место, где сверху ничего не легло, и играет фон. Тонкость
|
||||
настройки получается тем же механизмом, без второго UI и без отдельной ветки в генераторе.
|
||||
|
||||
**Дыра — это не только непокрытый интервал.** Фон играет и там, где слот сверху есть, но не заполнил
|
||||
своё время: остаток короче одной серии, добор до якоря или до круглой отметки, слот-повтор, которому
|
||||
нечего повторять. Поэтому генератор получает слоты фонового слоя **и перекрытые тоже** — в эфир
|
||||
сами они не идут, но их контент закрывает паузы, продолжая свой сериал от паузы к паузе (курсор
|
||||
у фонового слота свой, как у обычного).
|
||||
|
||||
Записи фона — обычные программы (`kind = program`) со своим слотом в трейсе: в ленте это настоящий
|
||||
контент, а не затычка, и «почему это здесь» показывает фоновый слот.
|
||||
|
||||
На самом краю остаётся `ScheduleTemplate.fallbackGroupId` и зацикленный аварийный ассет канала — на
|
||||
случай, когда пуст и фон.
|
||||
случай, когда пуст и фон. Только это и считается пост-проверкой «доля фона»: зацикленный филлер
|
||||
в эфире выглядит поломкой, а фоновый слот — ночным блоком.
|
||||
|
||||
### 3.5. Стратегии
|
||||
|
||||
@@ -666,6 +676,17 @@ ScheduleEntry — существующая сущность,
|
||||
Шаги 1–4 — чистая функция без БД и ФС, юнит-тестируемая, по образцу текущего `SchedulePlanner`.
|
||||
Шаги 5–7 — оркестратор, по образцу текущего `ScheduleGenerator`.
|
||||
|
||||
Любая пауза на шаге 4 закрывается в одном и том же порядке, и порядок этот значим:
|
||||
|
||||
```
|
||||
фоновый слой (слот этого времени, свой курсор)
|
||||
→ аварийная группа шаблона
|
||||
→ зацикленный филлер канала
|
||||
```
|
||||
|
||||
Конец вещания (`slotKind = signOff`) — исключение: там играет только зацикленный ассет. Канал
|
||||
не вещает, и подставлять туда программы фона было бы прямым враньём в программе передач.
|
||||
|
||||
### 4.2. Наполнение слота
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user