This commit is contained in:
Leonid Pershin
2026-08-18 23:51:10 +03:00
parent d8f8db6a48
commit 65feda3756
50 changed files with 1485 additions and 224 deletions
+44
View File
@@ -0,0 +1,44 @@
# Фаза 11. Пустая школа и пул соискателей
## Зависимости
- [Фаза 10](10-subjects.md)
- [Фаза 6](06-people-generator.md)
## Зачем
Школа открывается без единого сотрудника, а рядом появляется пул людей, готовых наняться.
Нанимать пока нечем — это фаза про данные.
## Задачи
- [ ] `RosterGenerator` больше не закрывает должности: новая школа получает учеников, родителей
и ноль сотрудников
- [ ] Пул соискателей в `HSchool.People`: список полноценных `Person`, детерминированный от сида
школы и номера недели
- [ ] Соискателем может стать родитель ученика — тот же человек, без второй сущности
- [ ] Базовый запрос по зарплате считается из навыков соискателя; шкала — в данных, не в коде
- [ ] Еженедельное обновление: часть уходит, часть остаётся с теми же именами и запросом,
приходят новые. Полная замена запрещена
- [ ] Пул живёт в `saves/{id}.people.json` рядом с ростером и пишется по тем же правилам —
при изменении состава, не по таймеру
- [ ] Воркер публикует пул вместе со снимком ростера
## Тесты, без которых фаза не закрыта
- [ ] Тот же сид и та же неделя — тот же пул
- [ ] После обновления часть людей та же самая, с теми же навыками и тем же запросом
- [ ] Пул не пустеет и не растёт бесконечно за пятьдесят недель
- [ ] Запрос по зарплате у сильного кандидата выше, чем у слабого
- [ ] Новая школа не имеет ни одного сотрудника, но все ученические места заняты
- [ ] Соискатель не попадает в ростер школы, пока не нанят
## Критерий готовности
- Создать школу — в списке людей есть ученики и родители, работников нет
- Перезапуск сервера поднимает тот же пул
- `dotnet test` проходит
## Стоп
Ни найма, ни денег, ни назначения предметов. Пул только существует и обновляется.