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