virus-home
|
f41bf9a0d2
|
Этап 7, итерация 2 завершена: m06-fit-import + m07-fit-fetch
m06 (Server.WatchBody.Import + --mode import): FitParser на официальном
Garmin FIT SDK 21.218.0 (Dynastream.Fit; события Decode, типы по Mesg.Num)
→ канонический факт workout-facts/1 (+avg_hr, hr_recovery_s, fit_file_id);
TcxGpxParser (упрощённый факт); WorkoutImporter — дедуп fit_file_id,
сопоставление телефонной тренировке ±15 мин (Ф-8.4), иначе строка
«только .fit»; ProgramPackageImporter — пакет program-import.json по
external_id (повтор → новая версия max+1, отсутствующие упражнения
создаются); ImportService — подпапки-атлеты, архив, коды 0/1/2.
Errata З-35: program_select/get rev.2 (+external_id, DROP старой
сигнатуры), маппинг ProgramRepository.
m07 (Server.WatchBody.Fetch + --mode fetch): GarminClient — SSO по
контракту garminconnect (embed→csrf→signin→ticket→OAuth1→Bearer),
список активностей, скачивание .fit; FitFetcher — атлет по
Garmin.AthleteName, фильтр strength_training, дедуп 2 рубежей
(кэш activityId + fit_file_id в БД); коды 0/1/2, auth-fail →
подсказка про m06-fallback. Против живого Garmin — ручная валидация
прототипа; тесты — FakeGarminHandler + .fit-энкодер SDK.
Тесты: Web 98/98 (m06 — 12, m07 — 5), Core 56/56, psql 123/123.
Конфиг: Import.Dir/ArchiveDir, Garmin.* (в т.ч. новый AthleteName —
tech-req 4.2). Эксплуатационные файлы в коммит не включены.
|
2026-10-18 23:58:53 +05:00 |
virus-home
|
f232d592a4
|
Этап 7: итерации 1–2 — m01–m05 серверной части + обе волны ревью 2026-10-18 (З-35…З-42)
Модули (d-dev, все закрыты): m01-server-db (38 psql-функций, 13 репозиториев,
psql 123/123), m02-rest-api (sync/workouts/programs + middleware),
m03-program-store (версии draft→active→archived), m04-metrics-engine
(метрики + 6 красных флагов, Safety.*), m05-progression-rules
(ProgressionRules + BreakEngine: правила 1–5, делоад, перерывы/возврат,
фильтр ограничений is_active/замены; Web 81/81 + Core 56/56).
Волны ревью: З-35 external_id до артефактов (миграция 003, program_insert
rev.2 с DROP старой сигнатуры); З-36 --mode migrate (Program.cs,
MigrationRunner, Db.MigrationsDir); З-37 tech-req 4.2 к факту (BpElevated*,
фактические параметры, camelCase); З-38 шлюзы m05; З-39 примечание Ф-14.2
(illness → перезапуск); З-40/З-42 документация к факту (dto, SqlHelperAbstract,
spec m05/m04); З-41(а) is_active=false в sync → exercise_delete (Ф-4.2).
Инфраструктура: docker watchbody-pg (PostgreSQL 17, порт 5433); Kit.Helpers
в 3-app/1-lib (не изменялся). Эксплуатационные файлы (program-trenirovok.*,
program-import.json, presentation-trenirovok.html, журнал метрик) в коммит
не включены.
|
2026-10-18 20:11:40 +05:00 |