Files
h-school/docs/phases/36-person-card-tabs.md
T

3.0 KiB

Фаза 36. Вкладки карточки

Зависимости

Зачем

Гардероб, ноша и сегодняшний след перестают быть секциями в одном свитке. Подробности о человеке читаются.

Задачи

  • Окно карточки: вкладки Обзор / Одежда / Ноша / Сейчас
  • Обзор — прежнее: тело, навыки, черты, нужды, семья, расписание; текущее дело с обзора уходит на «Сейчас»
  • Одежда: слои, цвет, полоска износа и подпись, короткая уместность к ситуации
  • Ноша: сумка, несёшь/можешь, шкафчик или его отсутствие, кратко «ещё N дома» без полного домашнего списка
  • Сейчас: на территории школы — подпись действия (ест, идёт, учится (математика), переодевается). Вне школы — «дома»
  • История за сегодня под текущим делом: поиск, сортировка, пейджинг
  • GET /api/schools/{id}/people/{personId}/log — страница и фильтр; не сокет, не лента школы. Граница суток — шесть утра; skip ночи обнуляет вчерашнее
  • Запись в лог: начало/конец действия, утренняя выдача одежды, переодевание. Хранит работник, не people.json
  • Vitest: переключение вкладок, пейджер лога, «дома» когда activity пустая и человек away
  • docs/protocol.md — HTTP лога в том же коммите

Тесты, без которых фаза не закрыта

  • Лог не едет в GET .../people/{id} — только отдельным запросом
  • Страница лога не пересекается; неизвестный человек — 404
  • После 6:00 записей вчера нет
  • Вне школы вкладка «Сейчас» показывает «дома», не пусто
  • Клиентский тест: вкладка «Одежда» не монтирует таблицу лога

Критерий готовности

  • Открыть ученика, переключить четыре вкладки, найти в истории сегодняшний обед
  • Тысяча строк лога не приезжает разом
  • dotnet test и npm test / build проходят

Стоп

Не возвращать панель общих событий школы. Не давать надевать с вкладки «Одежда».