Enhance staffing management in school simulation by introducing API endpoints for hiring staff and assigning subjects. Implement payroll cap validation to ensure hiring and subject assignments do not exceed the allocated budget. Update the simulation options to include a monthly payroll cap and revise related classes to support new staffing functionalities. Enhance documentation to reflect these changes and update tests to validate the new features.
This commit is contained in:
@@ -11,20 +11,20 @@
|
||||
|
||||
## Задачи
|
||||
|
||||
- [ ] Выделяемая на месяц сумма — в `SimulationOptions`, с умолчанием
|
||||
- [ ] Фонд оплаты школы: сумма базовых ставок плюс надбавки за предметы сверх первого
|
||||
- [ ] Наём: соискатель уходит из пула, становится работником, попадает в ростер. Родитель
|
||||
- [x] Выделяемая на месяц сумма — в `SimulationOptions`, с умолчанием
|
||||
- [x] Фонд оплаты школы: сумма базовых ставок плюс надбавки за предметы сверх первого
|
||||
- [x] Наём: соискатель уходит из пула, становится работником, попадает в ростер. Родитель
|
||||
остаётся родителем — новой сущности не заводится
|
||||
- [ ] Назначение предмета нанятому и снятие предмета
|
||||
- [ ] Предел проверяется **в момент действия**: наём или назначение, выводящее фонд за
|
||||
- [x] Назначение предмета нанятому и снятие предмета
|
||||
- [x] Предел проверяется **в момент действия**: наём или назначение, выводящее фонд за
|
||||
выделенную сумму, отклоняется с внятным кодом ошибки, а не откладывается до конца месяца
|
||||
- [ ] Покрытие предметов: какие предметы преподаются в существующих параллелях и не имеют ни
|
||||
- [x] Покрытие предметов: какие предметы преподаются в существующих параллелях и не имеют ни
|
||||
одного учителя
|
||||
- [ ] `GET /api/schools/{id}/staffing` — деньги, покрытие, пул и штат; читает опубликованный
|
||||
- [x] `GET /api/schools/{id}/staffing` — деньги, покрытие, пул и штат; читает опубликованный
|
||||
снимок, воркер не трогает
|
||||
- [ ] Наём и назначение идут в воркер через мейлбокс с `TaskCompletionSource`, как create и delete
|
||||
- [ ] Состав пишется на диск при изменении, снимок публикуется заново
|
||||
- [ ] `docs/protocol.md` пополняется в том же коммите, что и обработчики
|
||||
- [x] Наём и назначение идут в воркер через мейлбокс с `TaskCompletionSource`, как create и delete
|
||||
- [x] Состав пишется на диск при изменении, снимок публикуется заново
|
||||
- [x] `docs/protocol.md` пополняется в том же коммите, что и обработчики
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
| --- | --- | --- |
|
||||
| [10. Предметы и мебель](10-subjects.md) | ✅ | `SubjectDef`, одна учительская должность, кабинет как число мест |
|
||||
| [11. Пустая школа и пул](11-applicants.md) | ✅ | Школа без сотрудников, соискатели с запросом по зарплате |
|
||||
| [12. Наём и бюджет](12-hiring-budget.md) | ⬜ | Наём, назначение предметов, предел фонда оплаты |
|
||||
| [12. Наём и бюджет](12-hiring-budget.md) | ✅ | Наём, назначение предметов, предел фонда оплаты |
|
||||
| [13. Раздел «Управление»](13-management-tab.md) | ⬜ | Деньги, соискатели, штат и назначения на экране |
|
||||
|
||||
## Срез 4. Расписание
|
||||
|
||||
Reference in New Issue
Block a user