Remove off-queue.md and add new design documentation files including README.md, defs.md, near-term.md, projects.md, runtime.md, people.md, staffing.md, and schedule.md to outline the structure and agreements for the game's design phases.
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# Фаза 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` проходит
|
||||
|
||||
## Стоп
|
||||
|
||||
Не увольнять. Не платить зарплату по месяцам — предел проверяется, деньги не движутся.
|
||||
Не расписание.
|
||||
Reference in New Issue
Block a user