Files
h-school/docs/phases/11-applicants.md
T

45 lines
2.8 KiB
Markdown

# Фаза 11. Пустая школа и пул соискателей
## Зависимости
- [Фаза 10](10-subjects.md)
- [Фаза 6](06-people-generator.md)
## Зачем
Школа открывается без единого сотрудника, а рядом появляется пул людей, готовых наняться.
Нанимать пока нечем — это фаза про данные.
## Задачи
- [x] `RosterGenerator` больше не закрывает должности: новая школа получает учеников, родителей
и ноль сотрудников
- [x] Пул соискателей в `HSchool.People`: список полноценных `Person`, детерминированный от сида
школы и номера недели
- [x] Соискателем может стать родитель ученика — тот же человек, без второй сущности
- [x] Базовый запрос по зарплате считается из навыков соискателя; шкала — в данных, не в коде
- [x] Еженедельное обновление: часть уходит, часть остаётся с теми же именами и запросом,
приходят новые. Полная замена запрещена
- [x] Пул живёт в `saves/{id}.people.json` рядом с ростером и пишется по тем же правилам —
при изменении состава, не по таймеру
- [x] Воркер публикует пул вместе со снимком ростера
## Тесты, без которых фаза не закрыта
- [x] Тот же сид и та же неделя — тот же пул
- [x] После обновления часть людей та же самая, с теми же навыками и тем же запросом
- [x] Пул не пустеет и не растёт бесконечно за пятьдесят недель
- [x] Запрос по зарплате у сильного кандидата выше, чем у слабого
- [x] Новая школа не имеет ни одного сотрудника, но все ученические места заняты
- [x] Соискатель не попадает в ростер школы, пока не нанят
## Критерий готовности
- Создать школу — в списке людей есть ученики и родители, работников нет
- Перезапуск сервера поднимает тот же пул
- `dotnet test` проходит
## Стоп
Ни найма, ни денег, ни назначения предметов. Пул только существует и обновляется.