Files
h-school/docs/phases/15-timetable-planner.md
T
2026-08-18 23:51:10 +03:00

42 lines
2.5 KiB
Markdown

# Фаза 15. Планировщик
## Зависимости
- [Фаза 14](14-school-calendar.md)
- [Фаза 12](12-hiring-budget.md)
## Зачем
Из учебного плана, назначений и карты получается таблица уроков. Библиотека проверяется тестами,
без мира и без хоста, как генератор людей.
## Задачи
- [ ] Новый проект рядом с `HSchool.People`: зависит только на `HSchool.Content`, без Arch и
ASP.NET; отдаёт простую таблицу уроков
- [ ] Раскладка часов учебного плана по слотам недели для каждого класса
- [ ] Кабинет урока: требование предмета, иначе кабинет класса
- [ ] Четыре запрета соблюдаются: учитель, класс и кабинет не заняты дважды, класс влезает в кабинет
- [ ] Непокрытые часы не ставятся, а возвращаются отдельным списком — их покажет «Управление»
- [ ] Закреплённые игроком уроки принимаются на вход и переживают перестроение; остальное
раскладывается вокруг них
- [ ] Детерминированность: те же штат, назначения и карта дают ту же таблицу
## Тесты, без которых фаза не закрыта
- [ ] Один спортзал на одиннадцать классов — физкультура разъезжается по слотам, а не дублируется
- [ ] Учитель с двумя предметами не стоит в двух местах в одном слоте
- [ ] Класс на 16 не попадает в кабинет на 12
- [ ] Предмет без учителя даёт дыру и запись в непокрытых
- [ ] Закреплённый урок остаётся на месте после найма ещё одного учителя
- [ ] Те же входы — та же таблица
## Критерий готовности
- Тесты библиотеки зелёные
- В проекте нет упоминаний сокетов, ECS и `DateTime.Now`
## Стоп
Не трогать сервер, сейв и клиент. Таблица пока никуда не уезжает.