Files
h-school/docs/phases/07-inventory/29-country.md
T

50 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Фаза 29. Страна
## Зависимости
- [Фаза 5](../02-people/05-people-defs.md)
- [Фаза 26](../06-foundation/26-school-seed.md)
## Зачем
Create выбирает страну, а не набор имён. Имена и климатические пресеты перестают быть двумя
несвязанными пикерами.
## Задачи
- [x] `CountryDef` и `ClimatePresetDef` в `HSchool.Content`: страна вкладывает нынешние поля
набора имён в `names`, ссылается на пресеты списками id
- [x] Набор имён больше не выбираемый вид; папка `namesets/` в `core` уезжает в страну
- [x] Ваниль: одна страна `Russia` с нынешним славянским набором и хотя бы одним пресетом
(числа погоды можно заглушить — живая улица в фазе 32)
- [x] `GET /api/catalog` отдаёт `countries` (`defName`, подпись, `nativeLanguages`,
`climatePresets`) вместо `nameSets`
- [x] `POST /api/schools` принимает `countryId`; неизвестный — `400` `unknown-country`.
`nameSetId` не принимается
- [x] Пресет климата записывается на школу: случайный из списка страны, от сида. Живой школе
его не сменить
- [x] Форма создания: подпись «Страна»; язык — если у страны их несколько
- [x] Старый сейв с `nameSetId: Slavic` поднимается как `Russia` + первый пресет; формат
новее без `countryId` — как с прочими полями сейва, школа не стартует
- [x] `docs/protocol.md` и `AGENTS.md` (ориентир create / каталог) в том же коммите
- [x] Золотой отпечаток ростера обновляется, если вход генератора сменил имя поля
## Тесты, без которых фаза не закрыта
- [x] Каталог `core` грузится; страна без имён или с неизвестным пресетом — ошибка загрузки
- [x] Create с `countryId: Russia` и без языка даёт тот же родной язык, что прежний сид без
`nativeLanguage`
- [x] Create с неизвестной страной — `400` `unknown-country`
- [x] Два create с одним сидом получают один и тот же пресет
- [x] Старый сейв без страны поднимается
- [x] Диалог создания показывает страны, не наборы имён; смена страны обновляет список языков
## Критерий готовности
- Создать школу, выбрав страну; люди и язык как раньше на том же сиде
- `dotnet test` и `npm test` / `build` проходят
## Стоп
Не считать живую погоду. Не одевать людей. Не менять кадр часов.