Files
h-school/docs/phases/03-staffing/reviewed.md
T

3.1 KiB
Raw Blame History

Журнал ревью

Сводка: ../reviewed.md. Индекс среза: README.md.

Срез 3. Штат

  • Фазы: 1013
  • Проверен на: bdb1253, 2026-08-20
  • Пути: src/HSchool.People/Staffing.cs, src/HSchool.People/ApplicantPool.cs, src/HSchool.Content/SubjectDef и defs/staffing, src/HSchool.Server/Api/SchoolEndpoints.cs (staffing/hire/subjects), src/HSchool.Server/mods/core/defs/{subjects,positions,rooms,staffing,traits}, src/HSchool.Client/src/ui/managementPanel.ts, src/HSchool.Client/src/net/api.ts, tests/HSchool.People.Tests/{StaffingTests,ApplicantPoolTests}.cs, tests/HSchool.AppHost.Tests/StaffingApiTests.cs, src/HSchool.Client/src/ui/managementPanel.test.ts
  • Итог: обещания фаз 10–13 целы; дописаны 3 теста; docs/protocol.md дополнен ?lang=

Что подтверждено:

  • PETeacher нет; кабинеты без учительской должности; места через defaultSeats. Неизвестный навык в предмете роняет каталог. Стартовая дата 31 марта 2012.
  • Пул: детерминизм по сиду и неделе, частичное обновление, устойчивый размер, «сильный просит больше», пустой штат, соискатель вне ростера до найма. Пул 32.
  • Фонд оплаты, деление часов, пол ставки, покрытие. GET /staffing читает снимок, наём и назначение — GameCommand с TaskCompletionSource. MaxWeeklyHours не запрещает назначение, а оставляет предмет непокрытым. PrimarySchool на ванили требует трёх учителей (teachersShort).
  • Экран: деньги, непокрытые, пул, штат, назначение с карточки, отказ по пределу текстом, всё через t(...).
  • Полностью укомплектованная школа влезает в 100 000 впритык (запас 5–13%). Нанять пул целиком без назначений предела достигает. Раскладка «каждому все предметы» — самая дешёвая, не «укомплектованная школа».

Дописано:

  • StaffingApiTests.AssigningPastTheCap_IsRejectedWithTheNumbers — фаза 12 требовала API-тест на отказ по пределу; единственное место было написано через if (over.StatusCode == Conflict) и проходило при любом исходе.
  • ApplicantPoolTests.ConfidentTraits_AskForMoreAndQuietOnesForLess
  • В AssignAndUnassign_HonourTheCap_AndReloadKeepsAssignments — тот же пул с теми же ставками после перезапуска.

Исправлено:

  • docs/protocol.md не упоминал ?lang= у hire/subjects, хотя клиент его шлёт.