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

2.5 KiB

Фаза 15. Планировщик

Зависимости

Зачем

Из учебного плана, назначений и карты получается таблица уроков. Библиотека проверяется тестами, без мира и без хоста, как генератор людей.

Задачи

  • Новый проект рядом с HSchool.People: зависит только на HSchool.Content, без Arch и ASP.NET; отдаёт простую таблицу уроков
  • Раскладка часов учебного плана по слотам недели для каждого класса
  • Кабинет урока: требование предмета, иначе кабинет класса
  • Четыре запрета соблюдаются: учитель, класс и кабинет не заняты дважды, класс влезает в кабинет
  • Непокрытые часы не ставятся, а возвращаются отдельным списком — их покажет «Управление»
  • Закреплённые игроком уроки принимаются на вход и переживают перестроение; остальное раскладывается вокруг них
  • Детерминированность: те же штат, назначения и карта дают ту же таблицу

Тесты, без которых фаза не закрыта

  • Один спортзал на одиннадцать классов — физкультура разъезжается по слотам, а не дублируется
  • Учитель с двумя предметами не стоит в двух местах в одном слоте
  • Класс на 16 не попадает в кабинет на 12
  • Предмет без учителя даёт дыру и запись в непокрытых
  • Закреплённый урок остаётся на месте после найма ещё одного учителя
  • Те же входы — та же таблица

Критерий готовности

  • Тесты библиотеки зелёные
  • В проекте нет упоминаний сокетов, ECS и DateTime.Now

Стоп

Не трогать сервер, сейв и клиент. Таблица пока никуда не уезжает.