Files
h-school/docs/phases/02-people/08-people-browser.md
T

2.8 KiB

Фаза 8. Просмотр людей

Зависимости

Зачем

Игрок видит, кто учится и работает в его школе, не теряя из виду часы, карту и события.

Задачи

  • GET /api/schools/{id}/people: фильтры (роль, параллель, должность, пол, диапазон возраста), сортировка, страница. Читает опубликованный снимок ростера и не трогает воркер — инвариант «только поток школы касается школы» остаётся целым
  • GET /api/schools/{id}/people/{personId}: карточка через мейлбокс воркера с TaskCompletionSource, потому что нужды живые
  • Панель «Люди» в оболочке менеджера: фильтры, сортируемые колонки, пейджер. Сделана вкладкой рядом с картой, а не нижним рядом — заодно с экрана ушла пустая панель событий из фазы 1; см. people.md
  • Строка списка — только лёгкие поля: ФИО, роль, класс или должность, возраст, пол
  • Карточка: тело, навыки, черты, нужды, семья со ссылками на родных — по ссылке открывается карточка родственника
  • Строки и подписи через t(...), как всё остальное
  • docs/protocol.md пополняется в том же коммите, что и обработчики
  • Тесты API: фильтр по роли и параллели, сортировка, границы страниц, неизвестная школа, неизвестный человек

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

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

Стоп

Не редактировать людей. Не нанимать и не увольнять руками. Не показывать характеристики в списке — только в карточке.