CI / ruff · pytest (pull_request) Successful in 2m17s
GET /api/v1/me/{token}/garden computes the garden on the fly from taken doses,
check-ins/diary and finished questionnaires (no new table). Rules and texts in
config/garden.yaml: per-day caps, points only add up, answers never count.
Refs #118
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
39 lines
2.3 KiB
YAML
39 lines
2.3 KiB
YAML
# Сад (#118, слайд 13): лёгкая геймификация поверх модулей. Расчёт детерминированный, без LLM.
|
|
# Принципы «без давления» (вычитка — #120):
|
|
# 1. Сад не вянет: очки только прибавляются, пропуск ничего не отнимает.
|
|
# 2. Рост не зависит от ответов: считается факт активности, а не баллы шкал или настроение.
|
|
# 3. Нет соревнования: только свой сад, никаких сравнений.
|
|
|
|
# Очки за активность и дневной лимит по каждому типу (чтобы пять одинаковых действий подряд не давали пятикратный рост).
|
|
activities:
|
|
meds: # отметка «Принял(а)» по назначенной дозе
|
|
points: 2
|
|
daily_cap: 4
|
|
diary: # ежедневный чек-ин или запись дневника
|
|
points: 3
|
|
daily_cap: 1
|
|
questionnaire: # завершённый опрос (шкала, этап опроса)
|
|
points: 4
|
|
daily_cap: 1
|
|
|
|
# Каждые step_points очков — один шаг роста. Растения растут по очереди: у каждого stages_per_plant стадий
|
|
# (росток → стебель → бутон → цветок); распустился один — проклёвывается следующий.
|
|
step_points: 10
|
|
stages_per_plant: 4
|
|
max_plants: 6
|
|
|
|
# Название сада по числу шагов роста (берётся последний порог ≤ шагов).
|
|
titles:
|
|
- {from_steps: 0, title: "Сад ждёт первых ростков"}
|
|
- {from_steps: 1, title: "Появились первые ростки"}
|
|
- {from_steps: 4, title: "Распустился первый цветок"}
|
|
- {from_steps: 10, title: "Сад растёт"}
|
|
- {from_steps: 18, title: "Сад цветёт"}
|
|
- {from_steps: 24, title: "Цветущий сад"}
|
|
|
|
# Подписи пунктов «Сегодня».
|
|
today:
|
|
meds: "Приём лекарств"
|
|
diary: "Запись в дневнике"
|
|
questionnaire: "Назначенный опрос"
|