feat: сад пациента — рост от активностей (без давления) #123

Merged
Eleboba merged 1 commits from feat/118-garden into dev 2026-10-31 11:37:40 +03:00
Owner

Что меняется

Сад со слайда 13: «Любая полезная активность растит сад». GET /api/v1/me/{token}/garden считает сад детерминированно из уже существующих строк: отметки «Принял(а)» по дозам, чек-ины и дневник, завершённые опросы. Новой таблицы и миграции нет (ADR-003).

  • Правила — config/garden.yaml: очки, дневной лимит по каждому типу, шаг роста (10 очков), растения растут по очереди (4 стадии), названия стадий.
  • Принципы «без давления»: очки только прибавляются, пропуск ничего не отнимает; настроение и баллы шкал на рост не влияют; сравнений нет; сад видит только пациент.
  • «Сегодня» берётся из демо-часов. Опрос в чек-листе дня появляется только после выполнения, чтобы пустой день не выглядел «пропуском».
  • Андрей в сиде на 12-м дне: 66 очков, первый цветок распустился, второй растёт.

Closes #118

Зона

B

Как проверить

uv run pytest tests/test_services_garden.py · make seed → curl localhost:8000/api/v1/me/<token Андрея>/garden.

Чек-лист

  • rebase на origin/dev
  • make lint + make test зелёные (1071 passed)
  • лог в issue
  • нет ПДн в логах, нет секретов
  • вычитка правил и текстов психиатром — #120

🤖 Generated with Claude Code

## Что меняется Сад со слайда 13: «Любая полезная активность растит сад». `GET /api/v1/me/{token}/garden` считает сад детерминированно из уже существующих строк: отметки «Принял(а)» по дозам, чек-ины и дневник, завершённые опросы. Новой таблицы и миграции нет (ADR-003). - Правила — `config/garden.yaml`: очки, дневной лимит по каждому типу, шаг роста (10 очков), растения растут по очереди (4 стадии), названия стадий. - Принципы «без давления»: очки только прибавляются, пропуск ничего не отнимает; настроение и баллы шкал на рост не влияют; сравнений нет; сад видит только пациент. - «Сегодня» берётся из демо-часов. Опрос в чек-листе дня появляется только после выполнения, чтобы пустой день не выглядел «пропуском». - Андрей в сиде на 12-м дне: 66 очков, первый цветок распустился, второй растёт. Closes #118 ## Зона B ## Как проверить `uv run pytest tests/test_services_garden.py` · `make seed` → `curl localhost:8000/api/v1/me/<token Андрея>/garden`. ## Чек-лист - [x] rebase на origin/dev - [x] make lint + make test зелёные (1071 passed) - [x] лог в issue - [x] нет ПДн в логах, нет секретов - [ ] вычитка правил и текстов психиатром — #120 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Eleboba added 1 commit 2026-10-31 11:35:06 +03:00
feat(backend): patient garden — deterministic growth from activities
CI / ruff · pytest (pull_request) Successful in 2m17s
1cafaa87ec
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>
Eleboba merged commit 63cc5372be into dev 2026-10-31 11:37:40 +03:00
Sign in to join this conversation.