# Фаза 36. Вкладки карточки ## Зависимости - [Фаза 31](31-dress-generator.md) - [Фаза 8](08-people-browser.md) - [Фаза 28](28-screen-tests.md) ## Зачем Гардероб, ноша и сегодняшний след перестают быть секциями в одном свитке. Подробности о человеке читаются. ## Задачи - [ ] Окно карточки: вкладки **Обзор / Одежда / Ноша / Сейчас** - [ ] Обзор — прежнее: тело, навыки, черты, нужды, семья, расписание; текущее дело с обзора уходит на «Сейчас» - [ ] Одежда: слои, цвет, полоска износа и подпись, короткая уместность к ситуации - [ ] Ноша: сумка, несёшь/можешь, шкафчик или его отсутствие, кратко «ещё 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` проходят ## Стоп Не возвращать панель общих событий школы. Не давать надевать с вкладки «Одежда».