Files
h-school/docs/phases/12-hiring-budget.md
T

43 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Фаза 12. Наём, предметы и предел бюджета
## Зависимости
- [Фаза 11](11-applicants.md)
## Зачем
Игрок нанимает людей и раздаёт предметы, а выделенная сумма ограничивает, сколько он может себе
позволить. Экрана ещё нет — всё через API.
## Задачи
- [x] Выделяемая на месяц сумма — в `SimulationOptions`, с умолчанием
- [x] Фонд оплаты школы: сумма базовых ставок плюс надбавки за предметы сверх первого
- [x] Наём: соискатель уходит из пула, становится работником, попадает в ростер. Родитель
остаётся родителем — новой сущности не заводится
- [x] Назначение предмета нанятому и снятие предмета
- [x] Предел проверяется **в момент действия**: наём или назначение, выводящее фонд за
выделенную сумму, отклоняется с внятным кодом ошибки, а не откладывается до конца месяца
- [x] Покрытие предметов: какие предметы преподаются в существующих параллелях и не имеют ни
одного учителя
- [x] `GET /api/schools/{id}/staffing` — деньги, покрытие, пул и штат; читает опубликованный
снимок, воркер не трогает
- [x] Наём и назначение идут в воркер через мейлбокс с `TaskCompletionSource`, как create и delete
- [x] Состав пишется на диск при изменении, снимок публикуется заново
- [x] `docs/protocol.md` пополняется в том же коммите, что и обработчики
## Критерий готовности
- Нанять двоих на 3 000 и 7 000 при выделенных 10 000 — третий наём отклонён
- Снять предмет — фонд уменьшился, наём снова возможен
- Назначение, не влезающее в предел, отклонено, и в ответе видно почему
- Перезапуск сервера поднимает школу с тем же штатом и теми же назначениями
- Тесты API: наём, повторный наём того же человека, отклонение по пределу, неизвестная школа,
неизвестный соискатель
- `dotnet test` проходит
## Стоп
Не увольнять. Не платить зарплату по месяцам — предел проверяется, деньги не движутся.
Не расписание.