36 lines
2.2 KiB
Markdown
36 lines
2.2 KiB
Markdown
# Фаза 7. Люди в школе
|
|
|
|
## Зависимости
|
|
|
|
- [Фаза 6](06-people-generator.md)
|
|
- [Фаза 2](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 списка людей. Никакого поведения: люди существуют и стоят.
|