- Bumped the wire protocol version to 6, reflecting changes in the communication structure.
- Expanded the timetable API with new endpoints for fetching and managing lesson schedules, including `GET /api/schools/{id}/timetable` and `POST /api/schools/{id}/timetable/pin`.
- Updated the protocol documentation to include detailed descriptions of the new timetable features and message structures.
- Enhanced the client-side implementation to support the new timetable functionalities, including lesson pinning and unpinning.
- Revised server-side logic to handle timetable operations and ensure proper integration with existing school management features.
- Added tests to validate the new timetable functionalities and ensure robustness in handling lesson data.
71 lines
5.1 KiB
Markdown
71 lines
5.1 KiB
Markdown
# Фазы
|
|
|
|
Индекс. Статус: ⬜ не начата, 🔄 в работе, ✅ готова.
|
|
|
|
## Срез 1. Оболочка и карта
|
|
|
|
Дизайн закрыт: [`../design/near-term.md`](../design/near-term.md),
|
|
[`../design/defs.md`](../design/defs.md),
|
|
[`../design/runtime.md`](../design/runtime.md),
|
|
[`../design/projects.md`](../design/projects.md).
|
|
|
|
Новых игровых фич в эти фазы не добавлять. 1 и 2 можно вести параллельно (клиент / сервер).
|
|
|
|
| Фаза | Статус | Зачем |
|
|
| --- | --- | --- |
|
|
| [0. Убрать PixiJS](00-drop-pixi.md) | ✅ | Сцена не планируется |
|
|
| [1. Оболочка менеджера](01-manager-shell.md) | ✅ | Панели с секциями среза, пока без данных |
|
|
| [2. Работник школы и диск](02-school-worker.md) | ✅ | Поток + World + сейв — основа |
|
|
| [3. Каталог def и карта](03-defs-map.md) | ✅ | JSONC, core, валидация раскладки |
|
|
| [4. Моды и редактор в create](04-create-editor.md) | ✅ | Выбор модов, карта в POST, снимок при открытии |
|
|
|
|
## Срез 2. Люди
|
|
|
|
Дизайн: [`../design/people.md`](../design/people.md).
|
|
|
|
Школа наполняется людьми. Ученики, работники и родители существуют, показываются и обновляются
|
|
раз в год — но **ничего не делают**: ни расписания, ни перемещений, ни влияния характеристик.
|
|
|
|
Фазы идут по порядку, кроме 8 и 9: обе зависят только от 7 и могут вестись параллельно
|
|
(клиент / симуляция).
|
|
|
|
| Фаза | Статус | Зачем |
|
|
| --- | --- | --- |
|
|
| [5. Дефы человека](05-people-defs.md) | ✅ | Навыки, черты, тело, нужды, наборы имён в каталоге |
|
|
| [6. Библиотека генерации](06-people-generator.md) | ✅ | `HSchool.People`: семьи из карты и сида |
|
|
| [7. Люди в школе](07-people-in-school.md) | ✅ | Сущности в `World`, ростер на диске, 11 кабинетов в `core` |
|
|
| [8. Просмотр людей](08-people-browser.md) | ✅ | Панель со списком, фильтрами и карточкой |
|
|
| [9. Годовой набор](09-yearly-intake.md) | ✅ | Первое сентября: переход, выпуск, набор |
|
|
|
|
## Срез 3. Штат
|
|
|
|
Дизайн: [`../design/staffing.md`](../design/staffing.md).
|
|
|
|
Первый срез, где игрок принимает решения. Школа открывается пустой: надо нанять людей из пула
|
|
соискателей, раздать им предметы и уложиться в выделенную на месяц сумму. Уроков по-прежнему нет —
|
|
предмет это запись в нагрузке, а не событие в кабинете.
|
|
|
|
Фазы идут строго по порядку: каждая опирается на данные предыдущей.
|
|
|
|
| Фаза | Статус | Зачем |
|
|
| --- | --- | --- |
|
|
| [10. Предметы и мебель](10-subjects.md) | ✅ | `SubjectDef`, одна учительская должность, кабинет как число мест |
|
|
| [11. Пустая школа и пул](11-applicants.md) | ✅ | Школа без сотрудников, соискатели с запросом по зарплате |
|
|
| [12. Наём и бюджет](12-hiring-budget.md) | ✅ | Наём, назначение предметов, предел фонда оплаты |
|
|
| [13. Раздел «Управление»](13-management-tab.md) | ✅ | Деньги, соискатели, штат и назначения на экране |
|
|
|
|
## Срез 4. Расписание
|
|
|
|
Дизайн: [`../design/schedule.md`](../design/schedule.md).
|
|
|
|
Часы учебного плана раскладываются по дням и кабинетам. Школа начинает жить по времени: видно,
|
|
что идёт в комнате прямо сейчас. Люди при этом по-прежнему **не ходят** — они находятся там, где
|
|
их застало расписание.
|
|
|
|
| Фаза | Статус | Зачем |
|
|
| --- | --- | --- |
|
|
| [14. Каркас дня и каникулы](14-school-calendar.md) | ✅ | Звонки, длина недели, каникулы |
|
|
| [15. Планировщик](15-timetable-planner.md) | ✅ | Раскладка часов по слотам, четыре запрета |
|
|
| [16. Расписание в школе](16-timetable-in-school.md) | ✅ | Сейв, снимок, «кто где сейчас» |
|
|
| [17. Расписание на экране](17-timetable-screen.md) | ⬜ | Скобки в дереве, сетка класса, расписание учителя |
|