- конверт и точки разложены на форму провода, точки за период и условный запрос; свёртка — на сетку, порог неполного ведра и предел размера ответа; тренировки и записи разъехались на два независимых маршрута - openapi-swagger разложена на спеку, гейт против расхождения и Swagger UI — все три вне набора, вместе с mcp-server - набор спринта 2026-08-04 — весь HTTP-слой чтения, восемь задач
30 lines
2.0 KiB
Markdown
30 lines
2.0 KiB
Markdown
# Записи наружу
|
|
|
|
- **Секция:** ядро
|
|
- **Зачем:** stateOfMind разобран и хранится, но наружу не отдаётся — а восстановить его нечем: в экспорте Apple его нет
|
|
- **Теги:** goal:read-api, sprint:2026-08-04
|
|
|
|
Записи со своим `id` — сегодня это `stateOfMind` — достаются за период через
|
|
`GET /records/{kind}`.
|
|
|
|
Разбор и хранение сделаны тем же change, что у тренировок; наружу не отдаётся
|
|
ничего. У этих данных есть особенность, которой нет больше ни у чего в проекте:
|
|
**`stateOfMind` нет в экспорте Apple**, он не восстанавливается пересборкой из
|
|
снапшота, и единственный его источник — доставки HAE. Отдача наружу — не
|
|
удобство, а единственный способ увидеть то, что иначе живёт только внутри базы.
|
|
|
|
Конверт наследуется от точек; собственной формы у записей нет.
|
|
|
|
## Критерии приёмки
|
|
|
|
- записи `stateOfMind` за период отдаются одним запросом — оракул: запрос к
|
|
поднятому сервису на живом архиве
|
|
- неизвестный `kind` отвечает отказом со списком известных, а не пустым списком:
|
|
пустота и опечатка обязаны различаться — оракул: тест
|
|
- конверт совпадает с конвертом точек и тренировок — оракул: тест, сравнивающий
|
|
форму ответа трёх маршрутов
|
|
|
|
## Рамки
|
|
|
|
Схема не трогается, данные только читаются. Берётся после конверта.
|