Files
h-school/docs/phases/07-inventory/31-dress-generator.md
T

50 lines
3.4 KiB
Markdown

# Фаза 31. Генератор одевает
## Зависимости
- [Фаза 29](29-country.md)
- [Фаза 30](30-apparel-defs.md)
- [Фаза 6](../02-people/06-people-generator.md)
## Зачем
Люди рождаются одетыми. Гардероб детерминирован и лежит на человеке в `people.json`.
## Задачи
- [x] Экземпляр вещи на человеке: `def`, `color`, `condition` (1), место (`worn` / `bag` /
`locker` / `home`), для учебника — `subject`
- [x] Генератор одевает учеников, сотрудников, родителей и соискателей от семейного сида:
слои без пересечения, пол, возраст, дефолтные правила (обычная форма, без яркого на теле)
- [x] Учебники — по одному на предмет параллели ученика; в сумке пока могут лежать все, разнос
«сегодняшние vs шкафчик» — в фазе 33/35
- [x] Портфель, телефон, бутылка — с возрастом и шансом из данных, не из константы в генераторе
- [x] Навык `Hauling` (`always`); предел массы в дефе правил; на карточке несёшь/можешь.
Перегруз ходьбу не трогает; в сумку сверх предела генератор не кладёт
- [x] `GET .../people/{id}` отдаёт надетое и ношу; список людей — нет
- [x] Карточка пока без вкладок: секции «Одежда» и «Ноша» в том же свитке
- [x] `people.json` пишется при создании и наборе; золотой отпечаток обновляется в этом коммите
с объяснением, что изменилось
- [x] Строки через `t(...)` / локали каталога
## Тесты, без которых фаза не закрыта
- [x] Тот же сид, страна, карта и язык → те же id вещей, цвета и места
- [x] На одном слое не две вещи; платье занимает низ и верх сразу
- [x] Юбка не выдаётся мужчинам на тело; яркий верх не выдаётся на тело при дефолтных правилах
- [x] Ученик параллели с математикой имеет учебник этого предмета
- [x] Родитель и соискатель одеты
- [x] Масса в сумке ≤ предела
- [x] Старый `people.json` без инвентаря поднимается: генератор одевает при загрузке и пишет
файл (как пул соискателей в фазе 11)
## Критерий готовности
- Открыть карточку ученицы: слои заполнены, цвет виден, ноша с числом
- Повтор create с сидом даёт ту же рубашку
- `dotnet test` и `npm test` / `build` проходят
## Стоп
Не считать погоду. Не изнашивать. Не переодевать по ситуации. Не заводить вкладки карточки.