Files

36 lines
2.2 KiB
Markdown

# Фаза 7. Люди в школе
## Зависимости
- [Фаза 6](06-people-generator.md)
- [Фаза 2](../01-shell/02-school-worker.md)
## Зачем
Школа создаётся с людьми, они живут в её `World` и переживают перезапуск сервера. Экран пока
не меняется — это фаза про данные.
## Задачи
- [x] Ванильная карта дорабатывается до одиннадцати кабинетов; подписи кабинетов становятся
номерами помещений («204»), а не именами классов
- [x] Компоненты Arch под слои человека; сущности собираются из записей генератора
- [x] Класс как сущность: параллель, литера, закреплённый кабинет
- [x] Нужды тикают вместе со школой — механика есть, скорость в `core` нулевая
- [x] `saves/{id}.people.json`: сид, люди, семьи, классы. Пишется **только** при изменении
состава, не по таймеру; `saves/{id}.json` остаётся маленьким и частым
- [x] Загрузка ростера при старте школы; ростер, не сходящийся с картой, оставляет школу
незапущенной и файл нетронутым — как сейчас с картой
- [x] Воркер публикует неизменяемый снимок ростера, как публикует `SchoolState`
## Критерий готовности
- Создать школу — все ученические места и должности заняты
- Перезапустить сервер — те же люди с теми же именами и характеристиками
- Файл ростера не переписывается каждые тридцать секунд
- `dotnet test` проходит
## Стоп
Ни панели, ни фильтров, ни HTTP списка людей. Никакого поведения: люди существуют и стоят.