2.6 KiB
2.6 KiB
Фаза 16. Расписание в школе
Зависимости
Зачем
Расписание живёт в школе, переживает перезапуск и отвечает на вопрос «кто где сейчас». Экрана ещё нет.
Задачи
- Расписание пересобирается при найме, увольнении и изменении назначений — не по тику
- Хранится в сейве рядом с составом; пишется при изменении, не по таймеру. Закреплённые игроком уроки сохраняются вместе с ним
- Воркер публикует расписание снимком, как ростер
- «Кто где сейчас» вычисляется из расписания и часов, а не хранится вторым состоянием
- Команда закрепления и снятия закрепления урока — через мейлбокс воркера
GET /api/schools/{id}/timetable— расписание класса и расписание человека; читает опубликованный снимок- Снимок карты отдаёт по узлу, что там сейчас идёт и у кого; протокол и
docs/protocol.mdправятся тем же коммитом, версия бумпится - Панель локации получает данные для «Сейчас» и «Персонажей»
Критерий готовности
- Нанять учителя математики — в расписании появились уроки математики
- Снять назначение — уроки исчезли, предмет стал непокрытым
- Передвинуть урок, нанять ещё одного человека — передвинутый остался на месте
- Перемотать время на ×4 через звонок — «кто где сейчас» меняется вместе с уроком
- В каникулы и в выходной никто нигде не находится
- Перезапуск сервера поднимает то же расписание с теми же закреплениями
dotnet testпроходит
Стоп
Не рисовать расписание на экране. Не перемещать людей по карте.