/
DemienMedich
/
BodyweightBase
Обзор
Документация
Войти
/
DemienMedich
/
BodyweightBase
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
resources/default-state.json
2 092 строки
83 KB
DemienMedich
feat: harden mobile workout flow
19 июл 2026, 04:07
19 июл 2026, 04:07
d4e93a5
Код
Авторство
О чём код?
{ "bodyweightHistory": [ { "loggedAt": "2026-06-18T01:44:35.927", "weightKg": 75 } ], "currentBodyWeightKg": 75, "lastSavedAt": "2026-06-30T02:05:58.788", "legacyArchive": { "importedAt": "2026-06-15T23:32:50.182", "sessionCount": 7 }, "libraryVersion": "2026-03-personal-vtaper-v7", "pendingDraft": null, "pendingResult": null, "plans": [ { "basePlanId": "", "cooldownIncluded": true, "cooldownStepCount": 2, "dayOfWeek": 1, "description": "Тяжёлый день тяги. Гантели 8 кг, односторонняя работа и медленное опускание дают достаточную нагрузку без турника.", "goal": "Мышцы спины, V-силуэт, бицепс и хват", "id": "vtaper-pull", "name": "Пн • V-спина и бицепс", "recommendedRoundsText": "3 рабочих подхода; оставляй 1–2 повтора в запасе", "roundCount": 1, "roundStepCount": 0, "steps": [ { "coachNote": "По 12 на каждую руку с 8 кг. Пауза у таза 1 секунда, опускание 3 секунды.", "exerciseId": "one_arm_db_row", "restSecondsOverride": 55, "sets": 3, "targetOverride": 12 }, { "coachNote": "Одна гантель 8 кг двумя руками. Рёбра не выпячивать, опускание 3 секунды.", "exerciseId": "straight_arm_pulldown", "restSecondsOverride": 45, "sets": 3, "targetOverride": 15 }, { "coachNote": "По одной руке с 8 кг, локоть веди в сторону под углом 60–80 градусов. Без рывка.", "exerciseId": "one_arm_db_row", "restSecondsOverride": 40, "sets": 2, "targetOverride": 12 }, { "coachNote": "8 кг на руку. Локти неподвижны, опускание 3 секунды.", "exerciseId": "hammer_curl", "restSecondsOverride": 45, "sets": 3, "targetOverride": 12 }, { "coachNote": "По 45 секунд на сторону с 8 кг. Корпус строго вертикален.", "exerciseId": "suitcase_hold", "restSecondsOverride": 25, "sets": 2, "targetOverride": 45 } ], "variantId": "full", "warmupIncluded": true, "warmupStepCount": 4 }, { "basePlanId": "", "cooldownIncluded": true, "cooldownStepCount": 2, "dayOfWeek": 2, "description": "Тяжёлый жимовой день. Объём подобран под текущий максимум 20 отжиманий и фиксированные гантели по 8 кг.", "goal": "Мышцы груди и плеч для V-силуэта", "id": "vtaper-push", "name": "Вт • Грудь, плечи, трицепс", "recommendedRoundsText": "Последний подход трудный, но без отказа и потери техники", "roundCount": 1, "roundStepCount": 0, "steps": [ { "coachNote": "Две гантели по 8 кг. Пауза локтями у пола, вверх мощно, вниз 3 секунды.", "exerciseId": "db_floor_press", "restSecondsOverride": 55, "sets": 4, "targetOverride": 15 }, { "coachNote": "Таз высоко, голова идёт между ладонями. Оставляй 1 чистый повтор в запасе.", "exerciseId": "pike_pushup", "restSecondsOverride": 60, "sets": 3, "targetOverride": 8 }, { "coachNote": "Локти вдоль корпуса. Если 10 легко — опускание 4 секунды.", "exerciseId": "diamond_pushup", "restSecondsOverride": 50, "sets": 3, "targetOverride": 10 }, { "coachNote": "Тяга с высоким локтем для верхней спины и задней дельты. Плечо не поднимать.", "exerciseId": "one_arm_db_row", "restSecondsOverride": 45, "sets": 2, "targetOverride": 12 }, { "coachNote": "Одна гантель 8 кг двумя руками. Локти направлены вперёд.", "exerciseId": "overhead_triceps_extension", "restSecondsOverride": 45, "sets": 3, "targetOverride": 12 } ], "variantId": "full", "warmupIncluded": true, "warmupStepCount": 4 }, { "basePlanId": "", "cooldownIncluded": true, "cooldownStepCount": 3, "dayOfWeek": 3, "description": "Средний день ног без лишнего осевого давления. Односторонние варианты компенсируют ограниченный вес гантелей.", "goal": "Сильные ноги, таз и устойчивый корпус", "id": "legs-core-mobility", "name": "Ср • Ноги и корпус", "recommendedRoundsText": "Контроль важнее скорости; на каждую сторону одинаковый объём", "roundCount": 1, "roundStepCount": 0, "steps": [ { "coachNote": "По 12 на каждую ногу, гантели по 8 кг в руках. Передняя стопа полностью на полу.", "exerciseId": "reverse_lunge", "restSecondsOverride": 55, "sets": 3, "targetOverride": 12 }, { "coachNote": "Держи обе гантели у плеч или одну у груди. Опускание 3 секунды.", "exerciseId": "goblet_squat", "restSecondsOverride": 55, "sets": 3, "targetOverride": 18 }, { "coachNote": "По 15 на каждую ногу. Вверху пауза 2 секунды.", "exerciseId": "single_leg_glute_bridge", "restSecondsOverride": 35, "sets": 3, "targetOverride": 15 }, { "coachNote": "По 18 на сторону с гантелью. Полная амплитуда и пауза вверху.", "exerciseId": "single_leg_calf", "restSecondsOverride": 30, "sets": 3, "targetOverride": 18 }, { "coachNote": "По 35 секунд на сторону. Таз не опускать.", "exerciseId": "side_plank", "restSecondsOverride": 25, "sets": 3, "targetOverride": 35 }, { "coachNote": "По 10 на сторону. Поясница прижата к коврику.", "exerciseId": "dead_bug", "restSecondsOverride": 25, "sets": 2, "targetOverride": 10 } ], "variantId": "full", "warmupIncluded": true, "warmupStepCount": 4 }, { "basePlanId": "", "cooldownIncluded": true, "cooldownStepCount": 2, "dayOfWeek": 4, "description": "Технический день между силовыми нагрузками: стойка, форма, мосты, удары руками и ногами. Работа чистая, без суставной боли.", "goal": "Структура, техника, скорость рук и специальная выносливость", "id": "wingchun-structure", "name": "Чт • Вин-Чун: техника и выносливость", "recommendedRoundsText": "Средняя интенсивность; точность движения важнее максимального темпа", "roundCount": 1, "roundStepCount": 0, "steps": [ { "coachNote": "Макушка вверх, таз собран, стопы укоренены. Сохраняй спокойное дыхание.", "exerciseId": "yijkym_stance", "restSecondsOverride": 20, "sets": 2, "targetOverride": 60 }, { "coachNote": "Выполни форму без спешки: локти тяжёлые, плечи и трапеции расслаблены.", "exerciseId": "siu_lim_tao", "restSecondsOverride": 30, "sets": 1, "targetOverride": 120 }, { "coachNote": "По 30 секунд на сторону. Локоть направлен вниз, кисть остаётся мягкой.", "exerciseId": "tan_sao_drill", "restSecondsOverride": 15, "sets": 1, "targetOverride": 30 }, { "coachNote": "По 30 секунд на сторону. Не поднимай плечо и не заламывай запястье.", "exerciseId": "bong_sao_drill", "restSecondsOverride": 15, "sets": 1, "targetOverride": 30 }, { "coachNote": "Меняй стороны плавно: одна рука контролирует центр, вторая сохраняет структуру.", "exerciseId": "dan_chi_sao", "restSecondsOverride": 15, "sets": 1, "targetOverride": 30 }, { "coachNote": "По 10 на сторону. Короткий сбив из локтя и немедленный возврат в защиту.", "exerciseId": "pak_sa_drill", "restSecondsOverride": 20, "sets": 2, "targetOverride": 10 }, { "coachNote": "По 8 на сторону. Срезай линию предплечьем, не раскрывая локоть в сторону.", "exerciseId": "gaun_sa_drill", "restSecondsOverride": 20, "sets": 1, "targetOverride": 8 }, { "coachNote": "Ровный быстрый темп. Локти держатся у центра, плечи остаются свободными.", "exerciseId": "chain_punch_round", "restSecondsOverride": 30, "sets": 3, "targetOverride": 45 }, { "coachNote": "По 6 на ногу. Сначала подними колено, затем распрями и быстро верни стопу.", "exerciseId": "footer_kick", "restSecondsOverride": 25, "sets": 2, "targetOverride": 6 }, { "coachNote": "Умеренное натяжение без боли: не продавливай кисть и сохраняй локоть мягким.", "exerciseId": "wrist_extension_lean", "restSecondsOverride": 20, "sets": 1, "targetOverride": 25 } ], "variantId": "full", "warmupIncluded": true, "warmupStepCount": 4 }, { "basePlanId": "", "cooldownIncluded": true, "cooldownStepCount": 3, "dayOfWeek": 5, "description": "Опциональный пятый день для ускорения набора мышц. Используй его только при нормальном восстановлении после первых четырёх дней.", "goal": "Второй недельный стимул спине, груди и плечам", "id": "upper-density", "name": "Пт • Верх тела, объём", "recommendedRoundsText": "Если усталость выше обычной — пропусти этот день, а не сокращай технику", "roundCount": 1, "roundStepCount": 0, "steps": [ { "coachNote": "По 15 на руку с 8 кг. Пауза у корпуса и медленное опускание.", "exerciseId": "one_arm_db_row", "restSecondsOverride": 50, "sets": 3, "targetOverride": 15 }, { "coachNote": "Две гантели по 8 кг. Последние повторы плотные, но чистые.", "exerciseId": "db_floor_press", "restSecondsOverride": 50, "sets": 3, "targetOverride": 15 }, { "coachNote": "Одна гантель двумя руками. Длинная контролируемая дуга.", "exerciseId": "straight_arm_pulldown", "restSecondsOverride": 40, "sets": 2, "targetOverride": 15 }, { "coachNote": "Чистая амплитуда. Не доводи до отказа после вторника.", "exerciseId": "pike_pushup", "restSecondsOverride": 55, "sets": 2, "targetOverride": 8 }, { "coachNote": "Тяга с высоким локтем для верхней спины и задней дельты. Плечо не поднимать.", "exerciseId": "one_arm_db_row", "restSecondsOverride": 40, "sets": 2, "targetOverride": 15 }, { "coachNote": "8 кг на руку, опускание 3 секунды.", "exerciseId": "hammer_curl", "restSecondsOverride": 40, "sets": 2, "targetOverride": 15 }, { "coachNote": "Одна гантель двумя руками, локти неподвижны.", "exerciseId": "overhead_triceps_extension", "restSecondsOverride": 40, "sets": 2, "targetOverride": 12 } ], "variantId": "full", "warmupIncluded": true, "warmupStepCount": 4 }, { "basePlanId": "", "cooldownIncluded": true, "cooldownStepCount": 3, "dayOfWeek": 6, "description": "Длинный выходной формат: спокойный цигун, затем дозированное кардио и растяжка. Кардио выполняй не до отказа.", "goal": "Восстановление, дыхание, мобильность и общая выносливость", "id": "qigong-mobility", "name": "Сб • Цигун, кардио и мобильность", "recommendedRoundsText": "До 60 минут; кардио держать на уровне, где техника остаётся ровной", "roundCount": 1, "roundStepCount": 0, "steps": [ { "coachNote": "Спокойное носовое дыхание и расслабленные плечи.", "exerciseId": "wuji_breathing", "restSecondsOverride": 15, "sets": 1, "targetOverride": 120 }, { "coachNote": "Таз собран, локти тяжёлые, дыхание свободное.", "exerciseId": "embrace_tree", "restSecondsOverride": 20, "sets": 1, "targetOverride": 90 }, { "coachNote": "Движение синхронно с дыханием, без форсирования.", "exerciseId": "baduanjin_1", "restSecondsOverride": 15, "sets": 1, "targetOverride": 60 }, { "coachNote": "Плавная натяжка лука, колени следуют за стопами.", "exerciseId": "baduanjin_2", "restSecondsOverride": 15, "sets": 1, "targetOverride": 45 }, { "coachNote": "Одна ладонь вверх, другая вниз; корпус вертикален.", "exerciseId": "baduanjin_3", "restSecondsOverride": 15, "sets": 1, "targetOverride": 45 }, { "coachNote": "Мягко поворачивай шею и грудной отдел, без рывка и запрокидывания головы.", "exerciseId": "baduanjin_4", "restSecondsOverride": 15, "sets": 1, "targetOverride": 45 }, { "coachNote": "Амплитуда комфортная, без давления на поясницу.", "exerciseId": "baduanjin_5", "restSecondsOverride": 15, "sets": 1, "targetOverride": 10 }, { "coachNote": "Напряжение краткое, дыхание не задерживать.", "exerciseId": "baduanjin_6", "restSecondsOverride": 15, "sets": 1, "targetOverride": 12 }, { "coachNote": "Наклон только в доступной амплитуде.", "exerciseId": "baduanjin_7", "restSecondsOverride": 15, "sets": 1, "targetOverride": 10 }, { "coachNote": "Подъём на носки плавный, приземление мягкое.", "exerciseId": "baduanjin_8", "restSecondsOverride": 20, "sets": 1, "targetOverride": 12 }, { "coachNote": "Лёгкий теневой бой: шаги, защита, возврат рук.", "exerciseId": "shadow_box_round", "restSecondsOverride": 40, "sets": 3, "targetOverride": 120 }, { "coachNote": "Ровный темп без гонки. При потере техники перейти на шаг без прыжка.", "exerciseId": "burpee_interval", "restSecondsOverride": 45, "sets": 3, "targetOverride": 30 }, { "coachNote": "Корпус стабилен, колени идут вперёд без провала таза.", "exerciseId": "mountain_climber", "restSecondsOverride": 35, "sets": 3, "targetOverride": 40 }, { "coachNote": "По 3 медленных повтора на сторону.", "exerciseId": "world_greatest_stretch", "restSecondsOverride": 20, "sets": 1, "targetOverride": 6 }, { "coachNote": "По 45 секунд на сторону без прогиба в пояснице.", "exerciseId": "hip_flexor_stretch", "restSecondsOverride": 20, "sets": 1, "targetOverride": 45 } ], "variantId": "full", "warmupIncluded": true, "warmupStepCount": 3 }, { "basePlanId": "", "cooldownIncluded": true, "cooldownStepCount": 3, "dayOfWeek": 0, "description": "Короткая замена пятнице или субботе, но не дополнительная седьмая тренировка. Прекрати интервал при потере техники.", "goal": "Кардио, выносливость и скорость восстановления", "id": "cardio-burpee", "name": "Опционально • Кардио и берпи", "recommendedRoundsText": "20–30 минут; интенсивность 7–8 из 10, без полного отказа", "roundCount": 1, "roundStepCount": 0, "steps": [ { "coachNote": "Активная работа ног и возврат рук в защиту.", "exerciseId": "shadow_box_round", "restSecondsOverride": 35, "sets": 4, "targetOverride": 120 }, { "coachNote": "Ровный темп. Упрощай до шага назад, если техника распадается.", "exerciseId": "burpee_interval", "restSecondsOverride": 45, "sets": 5, "targetOverride": 30 }, { "coachNote": "Плечи над ладонями, корпус жёсткий.", "exerciseId": "mountain_climber", "restSecondsOverride": 35, "sets": 4, "targetOverride": 40 }, { "coachNote": "Быстрый ровный темп без зажима плеч.", "exerciseId": "chain_punch_round", "restSecondsOverride": 30, "sets": 3, "targetOverride": 60 }, { "coachNote": "Поясница прижата; сократи рычаг, если отрывается.", "exerciseId": "hollow_hold", "restSecondsOverride": 30, "sets": 3, "targetOverride": 35 } ], "variantId": "full", "warmupIncluded": true, "warmupStepCount": 4 } ], "profiles": [ { "id": "default", "name": "Семья" }, { "id": "роман", "name": "Роман" } ], "schemaVersion": 1, "selectedPlanId": "vtaper-push", "selectedPlanVariantId": "full", "selectedProfileId": "роман", "selectedRoundCount": 3, "sessions": [ { "completedAll": true, "endedAt": "2026-04-30T16:58:38.8086001+03:00", "feedback": "Легко", "id": "ac05f700-7651-414e-bbf4-d09902f4c117", "planId": "wingchun-structure", "planName": "Чт • Связки и структура Вин-Чун • Полная • 3 круга • с разминкой", "startedAt": "2026-04-30T16:40:13.1942219+03:00", "steps": [ { "actualValue": 10, "completed": false, "exerciseId": "warmup_breath_reset", "exerciseName": "Дыхательная настройка", "loadNote": "", "metric": "seconds", "restSeconds": 10, "targetValue": 40, "workSeconds": 10 }, { "actualValue": 25, "completed": true, "exerciseId": "warmup_wrist_roll", "exerciseName": "Разогрев кистей", "loadNote": "", "metric": "seconds", "restSeconds": 10, "targetValue": 25, "workSeconds": 25 }, { "actualValue": 30, "completed": true, "exerciseId": "warmup_arm_swing", "exerciseName": "Размах рук", "loadNote": "", "metric": "seconds", "restSeconds": 10, "targetValue": 30, "workSeconds": 30 }, { "actualValue": 60, "completed": true, "exerciseId": "yijkym_stance", "exerciseName": "Стойка Ий Джи Ким Йен Ма", "loadNote": "", "metric": "seconds", "restSeconds": 20, "targetValue": 60, "workSeconds": 60 }, { "actualValue": 30, "completed": true, "exerciseId": "wall_palm_isometric", "exerciseName": "Изометрия ладони в стену", "loadNote": "", "metric": "seconds", "restSeconds": 25, "targetValue": 30, "workSeconds": 30 }, { "actualValue": 25, "completed": true, "exerciseId": "wrist_extension_lean", "exerciseName": "Наклон на разгибатели кисти", "loadNote": "", "metric": "seconds", "restSeconds": 20, "targetValue": 25, "workSeconds": 25 }, { "actualValue": 40, "completed": true, "exerciseId": "chain_punch_round", "exerciseName": "Раунд цепных ударов", "loadNote": "", "metric": "seconds", "restSeconds": 25, "targetValue": 40, "workSeconds": 40 }, { "actualValue": 20, "completed": false, "exerciseId": "towel_wring_hold", "exerciseName": "Скручивание полотенца", "loadNote": "", "metric": "seconds", "restSeconds": 25, "targetValue": 40, "workSeconds": 20 }, { "actualValue": 60, "completed": true, "exerciseId": "yijkym_stance", "exerciseName": "Стойка Ий Джи Ким Йен Ма", "loadNote": "", "metric": "seconds", "restSeconds": 20, "targetValue": 60, "workSeconds": 60 }, { "actualValue": 30, "completed": true, "exerciseId": "wall_palm_isometric", "exerciseName": "Изометрия ладони в стену", "loadNote": "", "metric": "seconds", "restSeconds": 25, "targetValue": 30, "workSeconds": 30 }, { "actualValue": 25, "completed": true, "exerciseId": "wrist_extension_lean", "exerciseName": "Наклон на разгибатели кисти", "loadNote": "", "metric": "seconds", "restSeconds": 20, "targetValue": 25, "workSeconds": 25 }, { "actualValue": 5, "completed": false, "exerciseId": "chain_punch_round", "exerciseName": "Раунд цепных ударов", "loadNote": "", "metric": "seconds", "restSeconds": 25, "targetValue": 40, "workSeconds": 5 }, { "actualValue": 40, "completed": true, "exerciseId": "towel_wring_hold", "exerciseName": "Скручивание полотенца", "loadNote": "", "metric": "seconds", "restSeconds": 25, "targetValue": 40, "workSeconds": 40 }, { "actualValue": 60, "completed": true, "exerciseId": "yijkym_stance", "exerciseName": "Стойка Ий Джи Ким Йен Ма", "loadNote": "", "metric": "seconds", "restSeconds": 20, "targetValue": 60, "workSeconds": 60 }, { "actualValue": 30, "completed": true, "exerciseId": "wall_palm_isometric", "exerciseName": "Изометрия ладони в стену", "loadNote": "", "metric": "seconds", "restSeconds": 25, "targetValue": 30, "workSeconds": 30 }, { "actualValue": 25, "completed": true, "exerciseId": "wrist_extension_lean", "exerciseName": "Наклон на разгибатели кисти", "loadNote": "", "metric": "seconds", "restSeconds": 20, "targetValue": 25, "workSeconds": 25 }, { "actualValue": 40, "completed": true, "exerciseId": "chain_punch_round", "exerciseName": "Раунд цепных ударов", "loadNote": "", "metric": "seconds", "restSeconds": 25, "targetValue": 40, "workSeconds": 40 }, { "actualValue": 5, "completed": false, "exerciseId": "towel_wring_hold", "exerciseName": "Скручивание полотенца", "loadNote": "", "metric": "seconds", "restSeconds": 25, "targetValue": 40, "workSeconds": 5 } ], "totalRestSeconds": 287, "totalWorkSeconds": 560 }, { "completedAll": true, "endedAt": "2026-04-05T16:40:04.5418101+03:00", "feedback": "Тяжеловато", "id": "4a4fc91e-789c-4b92-af0b-8fa8aa938701", "planId": "cardio-burpee", "planName": "Опционально • Кардио: берпи • Полная • 2 круга • с разминкой", "startedAt": "2026-04-05T16:23:55.2879251+03:00", "steps": [ { "actualValue": 40, "completed": true, "exerciseId": "warmup_march_place", "exerciseName": "Марш на месте", "loadNote": "", "metric": "seconds", "restSeconds": 10, "targetValue": 40, "workSeconds": 40 }, { "actualValue": 25, "completed": true, "exerciseId": "warmup_shoulder_circle", "exerciseName": "Круги плечами", "loadNote": "", "metric": "seconds", "restSeconds": 10, "targetValue": 25, "workSeconds": 25 }, { "actualValue": 10, "completed": true, "exerciseId": "warmup_squat_to_stand", "exerciseName": "Присед-разогрев", "loadNote": "", "metric": "repetitions", "restSeconds": 10, "targetValue": 10, "workSeconds": 28 }, { "actualValue": 45, "completed": true, "exerciseId": "burpee_interval", "exerciseName": "Берпи", "loadNote": "", "metric": "seconds", "restSeconds": 40, "targetValue": 45, "workSeconds": 45 }, { "actualValue": 60, "completed": true, "exerciseId": "shadow_box_round", "exerciseName": "Теневой бой", "loadNote": "", "metric": "seconds", "restSeconds": 25, "targetValue": 60, "workSeconds": 60 }, { "actualValue": 35, "completed": true, "exerciseId": "burpee_interval", "exerciseName": "Берпи", "loadNote": "", "metric": "seconds", "restSeconds": 35, "targetValue": 35, "workSeconds": 35 }, { "actualValue": 40, "completed": true, "exerciseId": "mountain_climber", "exerciseName": "Альпинист", "loadNote": "", "metric": "seconds", "restSeconds": 25, "targetValue": 40, "workSeconds": 40 }, { "actualValue": 30, "completed": true, "exerciseId": "hollow_hold", "exerciseName": "Hollow hold", "loadNote": "", "metric": "seconds", "restSeconds": 25, "targetValue": 30, "workSeconds": 30 }, { "actualValue": 45, "completed": true, "exerciseId": "burpee_interval", "exerciseName": "Берпи", "loadNote": "", "metric": "seconds", "restSeconds": 40, "targetValue": 45, "workSeconds": 45 }, { "actualValue": 60, "completed": true, "exerciseId": "shadow_box_round", "exerciseName": "Теневой бой", "loadNote": "", "metric": "seconds", "restSeconds": 25, "targetValue": 60, "workSeconds": 60 }, { "actualValue": 35, "completed": true, "exerciseId": "burpee_interval", "exerciseName": "Берпи", "loadNote": "", "metric": "seconds", "restSeconds": 35, "targetValue": 35, "workSeconds": 35 }, { "actualValue": 40, "completed": true, "exerciseId": "mountain_climber", "exerciseName": "Альпинист", "loadNote": "", "metric": "seconds", "restSeconds": 25, "targetValue": 40, "workSeconds": 40 }, { "actualValue": 30, "completed": true, "exerciseId": "hollow_hold", "exerciseName": "Hollow hold", "loadNote": "", "metric": "seconds", "restSeconds": 25, "targetValue": 30, "workSeconds": 30 } ], "totalRestSeconds": 305, "totalWorkSeconds": 513 }, { "completedAll": true, "endedAt": "2026-03-29T20:10:17.7646166+03:00", "feedback": "", "id": "4e88bab4-ce54-47cc-9923-beb77ec76a54", "planId": "qigong-mobility", "planName": "Сб • Цигун и мягкая растяжка", "startedAt": "2026-03-29T20:09:08.2674665+03:00", "steps": [ { "actualValue": 0, "completed": false, "exerciseId": "wuji_breathing", "exerciseName": "У-цзи дыхание", "loadNote": "", "metric": "seconds", "restSeconds": 15, "targetValue": 100, "workSeconds": 1 }, { "actualValue": 3, "completed": false, "exerciseId": "embrace_tree", "exerciseName": "Обнимать дерево", "loadNote": "", "metric": "seconds", "restSeconds": 15, "targetValue": 65, "workSeconds": 3 }, { "actualValue": 6, "completed": false, "exerciseId": "body_tapping", "exerciseName": "Простукивание корпуса", "loadNote": "", "metric": "seconds", "restSeconds": 15, "targetValue": 65, "workSeconds": 6 }, { "actualValue": 13, "completed": true, "exerciseId": "thoracic_rotation", "exerciseName": "Торакальные развороты", "loadNote": "", "metric": "repetitions", "restSeconds": 15, "targetValue": 13, "workSeconds": 10 }, { "actualValue": 15, "completed": true, "exerciseId": "switch_90_90", "exerciseName": "Переходы 90/90", "loadNote": "", "metric": "repetitions", "restSeconds": 15, "targetValue": 15, "workSeconds": 3 }, { "actualValue": 3, "completed": false, "exerciseId": "hip_flexor_stretch", "exerciseName": "Растяжка сгибателя бедра", "loadNote": "", "metric": "seconds", "restSeconds": 15, "targetValue": 50, "workSeconds": 3 } ], "totalRestSeconds": 9, "totalWorkSeconds": 26 }, { "completedAll": true, "endedAt": "2026-03-28T22:01:58.82275+03:00", "feedback": "Легко", "id": "289bae2a-7484-4555-b547-50ae5b99ce7f", "planId": "qigong-mobility", "planName": "Сб • Цигун и мягкая растяжка", "startedAt": "2026-03-28T21:53:39.5634296+03:00", "steps": [ { "actualValue": 95, "completed": true, "exerciseId": "wuji_breathing", "exerciseName": "У-цзи дыхание", "loadNote": "", "metric": "seconds", "restSeconds": 15, "targetValue": 95, "workSeconds": 95 }, { "actualValue": 65, "completed": true, "exerciseId": "embrace_tree", "exerciseName": "Обнимать дерево", "loadNote": "", "metric": "seconds", "restSeconds": 15, "targetValue": 65, "workSeconds": 65 }, { "actualValue": 65, "completed": true, "exerciseId": "body_tapping", "exerciseName": "Простукивание корпуса", "loadNote": "", "metric": "seconds", "restSeconds": 15, "targetValue": 65, "workSeconds": 65 }, { "actualValue": 13, "completed": true, "exerciseId": "thoracic_rotation", "exerciseName": "Торакальные развороты", "loadNote": "", "metric": "repetitions", "restSeconds": 15, "targetValue": 13, "workSeconds": 75 }, { "actualValue": 15, "completed": true, "exerciseId": "switch_90_90", "exerciseName": "Переходы 90/90", "loadNote": "", "metric": "repetitions", "restSeconds": 15, "targetValue": 15, "workSeconds": 25 }, { "actualValue": 45, "completed": true, "exerciseId": "hip_flexor_stretch", "exerciseName": "Растяжка сгибателя бедра", "loadNote": "", "metric": "seconds", "restSeconds": 15, "targetValue": 45, "workSeconds": 45 } ], "totalRestSeconds": 70, "totalWorkSeconds": 370 }, { "completedAll": true, "endedAt": "2026-03-28T21:52:58.1143365+03:00", "feedback": "Легко", "id": "77d6bd06-1a77-4225-b523-05e4712b792e", "planId": "qigong-mobility", "planName": "Сб • Цигун и мягкая растяжка", "startedAt": "2026-03-28T21:44:33.2051621+03:00", "steps": [ { "actualValue": 90, "completed": true, "exerciseId": "wuji_breathing", "exerciseName": "У-цзи дыхание", "loadNote": "", "metric": "seconds", "restSeconds": 20, "targetValue": 90, "workSeconds": 90 }, { "actualValue": 60, "completed": true, "exerciseId": "embrace_tree", "exerciseName": "Обнимать дерево", "loadNote": "", "metric": "seconds", "restSeconds": 20, "targetValue": 60, "workSeconds": 60 }, { "actualValue": 60, "completed": true, "exerciseId": "body_tapping", "exerciseName": "Простукивание корпуса", "loadNote": "", "metric": "seconds", "restSeconds": 20, "targetValue": 60, "workSeconds": 60 }, { "actualValue": 12, "completed": true, "exerciseId": "thoracic_rotation", "exerciseName": "Торакальные развороты", "loadNote": "", "metric": "repetitions", "restSeconds": 20, "targetValue": 12, "workSeconds": 60 }, { "actualValue": 14, "completed": true, "exerciseId": "switch_90_90", "exerciseName": "Переходы 90/90", "loadNote": "", "metric": "repetitions", "restSeconds": 20, "targetValue": 14, "workSeconds": 38 }, { "actualValue": 45, "completed": true, "exerciseId": "hip_flexor_stretch", "exerciseName": "Растяжка сгибателя бедра", "loadNote": "", "metric": "seconds", "restSeconds": 20, "targetValue": 45, "workSeconds": 45 } ], "totalRestSeconds": 92, "totalWorkSeconds": 353 }, { "completedAll": true, "endedAt": "2026-03-20T16:49:41.614452+03:00", "feedback": "", "id": "7b2698f2-dfb8-4edb-a5ce-ab63ed5e5874", "planId": "upper-density", "planName": "Пт • Верх тела, объем", "startedAt": "2026-03-20T16:40:52.5884311+03:00", "steps": [ { "actualValue": 12, "completed": true, "exerciseId": "straight_arm_pulldown", "exerciseName": "Пуловер с гантелью лежа", "loadNote": "8 кг двумя руками", "metric": "repetitions", "restSeconds": 45, "targetValue": 12, "workSeconds": 75 }, { "actualValue": 16, "completed": true, "exerciseId": "db_floor_press", "exerciseName": "Жим гантелей лежа на полу", "loadNote": "2x8 кг", "metric": "repetitions", "restSeconds": 50, "targetValue": 16, "workSeconds": 37 }, { "actualValue": 10, "completed": true, "exerciseId": "pike_pushup", "exerciseName": "Пиковые отжимания", "loadNote": "собственный вес", "metric": "repetitions", "restSeconds": 55, "targetValue": 10, "workSeconds": 29 }, { "actualValue": 17, "completed": true, "exerciseId": "backpack_row", "exerciseName": "Тяга в наклоне", "loadNote": "8 кг", "metric": "repetitions", "restSeconds": 40, "targetValue": 17, "workSeconds": 36 }, { "actualValue": 15, "completed": true, "exerciseId": "hammer_curl", "exerciseName": "Молотковые сгибания", "loadNote": "8 кг на руку • 3с вниз", "metric": "repetitions", "restSeconds": 30, "targetValue": 15, "workSeconds": 47 }, { "actualValue": 8, "completed": false, "exerciseId": "band_lateral_raise", "exerciseName": "Подъемы гантелей в сторону", "loadNote": "2x2 кг", "metric": "repetitions", "restSeconds": 35, "targetValue": 16, "workSeconds": 31 } ], "totalRestSeconds": 220, "totalWorkSeconds": 255 }, { "completedAll": true, "endedAt": "2026-03-09T18:54:38.9928606+03:00", "feedback": "Слишком легко", "id": "ad36917c-6f72-497b-a097-bccf010735b4", "planId": "vtaper-pull", "planName": "Пн • V-спина и бицепс", "startedAt": "2026-03-09T18:46:30.4394178+03:00", "steps": [ { "actualValue": 15, "completed": true, "exerciseId": "band_lat_pulldown", "exerciseName": "Тяга резины сверху", "loadNote": "резина medium", "metric": "repetitions", "restSeconds": 50, "targetValue": 15, "workSeconds": 92 }, { "actualValue": 30, "completed": true, "exerciseId": "backpack_row", "exerciseName": "Тяга в наклоне", "loadNote": "8 кг", "metric": "repetitions", "restSeconds": 55, "targetValue": 14, "workSeconds": 20 }, { "actualValue": 15, "completed": true, "exerciseId": "straight_arm_pulldown", "exerciseName": "Прямые тяги резины вниз", "loadNote": "резина light", "metric": "repetitions", "restSeconds": 45, "targetValue": 15, "workSeconds": 76 }, { "actualValue": 12, "completed": true, "exerciseId": "hammer_curl", "exerciseName": "Молотковые сгибания", "loadNote": "8 кг на руку • 3с вниз", "metric": "repetitions", "restSeconds": 40, "targetValue": 12, "workSeconds": 49 }, { "actualValue": 35, "completed": true, "exerciseId": "towel_wring_hold", "exerciseName": "Скручивание полотенца", "loadNote": "", "metric": "seconds", "restSeconds": 30, "targetValue": 35, "workSeconds": 35 } ], "totalRestSeconds": 190, "totalWorkSeconds": 272 }, { "completedAll": true, "endedAt": "2026-06-23T00:52:48.574", "feedback": "Легко", "id": "56216861-cd4b-4cf6-af9c-d07b8461976b", "planId": "upper-density", "planName": "Пт • Верх тела, объем", "profileId": "default", "startedAt": "2026-06-23T00:50:51.1", "steps": [ { "actualValue": 12, "completed": true, "exerciseId": "straight_arm_pulldown", "exerciseName": "Пуловер с гантелью лежа", "loadNote": "", "metric": "repetitions", "restSeconds": 45, "targetValue": 12, "workSeconds": 29 }, { "actualValue": 16, "completed": true, "exerciseId": "db_floor_press", "exerciseName": "Жим гантелей лежа на полу", "loadNote": "", "metric": "repetitions", "restSeconds": 50, "targetValue": 16, "workSeconds": 7 }, { "actualValue": 10, "completed": true, "exerciseId": "pike_pushup", "exerciseName": "Пиковые отжимания", "loadNote": "", "metric": "repetitions", "restSeconds": 55, "targetValue": 10, "workSeconds": 7 }, { "actualValue": 16, "completed": true, "exerciseId": "backpack_row", "exerciseName": "Тяга в наклоне", "loadNote": "", "metric": "repetitions", "restSeconds": 45, "targetValue": 16, "workSeconds": 3 }, { "actualValue": 15, "completed": true, "exerciseId": "hammer_curl", "exerciseName": "Молотковые сгибания", "loadNote": "", "metric": "repetitions", "restSeconds": 30, "targetValue": 15, "workSeconds": 2 }, { "actualValue": 16, "completed": true, "exerciseId": "band_lateral_raise", "exerciseName": "Подъемы гантелей в сторону", "loadNote": "", "metric": "repetitions", "restSeconds": 35, "targetValue": 16, "workSeconds": 2 } ], "totalRestSeconds": 40, "totalWorkSeconds": 50 }, { "completedAll": true, "endedAt": "2026-06-24T17:35:41.905", "feedback": "Нормально", "id": "57a9620c-fec2-47e5-99f7-aeafb316af6b", "planId": "upper-density", "planName": "Пт • Верх тела, объем", "profileId": "роман", "startedAt": "2026-06-24T17:25:28.259", "steps": [ { "actualValue": 13, "completed": true, "exerciseId": "straight_arm_pulldown", "exerciseName": "Пуловер с гантелью лежа", "loadNote": "", "metric": "repetitions", "restSeconds": 45, "targetValue": 13, "workSeconds": 59 }, { "actualValue": 17, "completed": true, "exerciseId": "db_floor_press", "exerciseName": "Жим гантелей лежа на полу", "loadNote": "", "metric": "repetitions", "restSeconds": 50, "targetValue": 17, "workSeconds": 41 }, { "actualValue": 11, "completed": true, "exerciseId": "pike_pushup", "exerciseName": "Пиковые отжимания", "loadNote": "", "metric": "repetitions", "restSeconds": 55, "targetValue": 11, "workSeconds": 33 }, { "actualValue": 17, "completed": true, "exerciseId": "backpack_row", "exerciseName": "Тяга в наклоне", "loadNote": "", "metric": "repetitions", "restSeconds": 45, "targetValue": 17, "workSeconds": 41 }, { "actualValue": 16, "completed": true, "exerciseId": "hammer_curl", "exerciseName": "Молотковые сгибания", "loadNote": "", "metric": "repetitions", "restSeconds": 30, "targetValue": 16, "workSeconds": 46 }, { "actualValue": 17, "completed": true, "exerciseId": "band_lateral_raise", "exerciseName": "Подъемы гантелей в сторону", "loadNote": "", "metric": "repetitions", "restSeconds": 35, "targetValue": 17, "workSeconds": 42 }, { "actualValue": 12, "completed": true, "exerciseId": "overhead_triceps_extension", "exerciseName": "Французский жим стоя", "loadNote": "", "metric": "repetitions", "restSeconds": 40, "targetValue": 12, "workSeconds": 35 } ], "totalRestSeconds": 260, "totalWorkSeconds": 297 } ], "trainingCycles": [ { "createdAt": "2026-06-27T19:32:05.366", "durationWeeks": 26, "goal": "Мышцы • V-силуэт • Вин-Чун • выносливость • кардио", "id": "cycle-роман-20260629", "profileId": "роман", "startDate": "2026-06-29" } ], "wearableDailyHistory": [ { "activeCaloriesKcal": 1821.8, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-01", "deepSleepMinutes": 183, "deviceModel": "Redmi Watch 5", "heartRateAvg": 126.04901960784314, "heartRateMax": 173, "heartRateMin": 63, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.175, "profileId": "роман", "remSleepMinutes": 125, "sleepMinutes": 579, "source": "health-connect", "steps": 34937, "workoutCount": 6, "workoutMinutes": 145 }, { "activeCaloriesKcal": 1572, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-02", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 123.69171084960558, "heartRateMax": 151, "heartRateMin": 77, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.2719298245614, "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 185, "source": "health-connect", "steps": 29445, "workoutCount": 1, "workoutMinutes": 129 }, { "activeCaloriesKcal": 2750.5, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-03", "deepSleepMinutes": 147, "deviceModel": "Redmi Watch 5", "heartRateAvg": 129.44826154644525, "heartRateMax": 162, "heartRateMin": 74, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.31944444444444, "profileId": "роман", "remSleepMinutes": 132, "sleepMinutes": 485, "source": "health-connect", "steps": 45211, "workoutCount": 4, "workoutMinutes": 189 }, { "activeCaloriesKcal": 487.4, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-04", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 100.72143430559272, "heartRateMax": 148, "heartRateMin": 74, "importedAt": "2026-06-30T02:05:58.788", "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 0, "source": "health-connect", "steps": 21156, "workoutCount": 3, "workoutMinutes": 98 }, { "activeCaloriesKcal": 575.2, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-05", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 92.4099569760295, "heartRateMax": 129, "heartRateMin": 59, "importedAt": "2026-06-30T02:05:58.788", "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 0, "source": "health-connect", "steps": 24401, "workoutCount": 5, "workoutMinutes": 374 }, { "activeCaloriesKcal": 473, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-06", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 102.10509754562618, "heartRateMax": 173, "heartRateMin": 70, "importedAt": "2026-06-30T02:05:58.788", "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 0, "source": "health-connect", "steps": 19852, "workoutCount": 1, "workoutMinutes": 26 }, { "activeCaloriesKcal": 91.4, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-07", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 100.10644567219153, "heartRateMax": 138, "heartRateMin": 71, "importedAt": "2026-06-30T02:05:58.788", "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 0, "source": "health-connect", "steps": 3848, "workoutCount": 2, "workoutMinutes": 183 }, { "activeCaloriesKcal": 471, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-08", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 96.82305630026809, "heartRateMax": 132, "heartRateMin": 69, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.40384615384616, "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 0, "source": "health-connect", "steps": 9928, "workoutCount": 1, "workoutMinutes": 12 }, { "activeCaloriesKcal": 1667, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-09", "deepSleepMinutes": 140, "deviceModel": "Redmi Watch 5", "heartRateAvg": 103.33815159454332, "heartRateMax": 169, "heartRateMin": 72, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.41176470588235, "profileId": "роман", "remSleepMinutes": 102, "sleepMinutes": 403, "source": "health-connect", "steps": 17268, "workoutCount": 3, "workoutMinutes": 184 }, { "activeCaloriesKcal": 683, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-10", "deepSleepMinutes": 122, "deviceModel": "Redmi Watch 5", "heartRateAvg": 100.6541095890411, "heartRateMax": 110, "heartRateMin": 90, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.3206106870229, "profileId": "роман", "remSleepMinutes": 93, "sleepMinutes": 464, "source": "health-connect", "steps": 9920, "workoutCount": 1, "workoutMinutes": 10 }, { "activeCaloriesKcal": 1554, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-11", "deepSleepMinutes": 121, "deviceModel": "Redmi Watch 5", "heartRateAvg": 94.24711316397229, "heartRateMax": 160, "heartRateMin": 70, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.22047244094489, "profileId": "роман", "remSleepMinutes": 98, "sleepMinutes": 523, "source": "health-connect", "steps": 13980, "workoutCount": 2, "workoutMinutes": 173 }, { "activeCaloriesKcal": 1504.6, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-12", "deepSleepMinutes": 110, "deviceModel": "Redmi Watch 5", "heartRateAvg": 112.70553539019964, "heartRateMax": 134, "heartRateMin": 84, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.17391304347827, "profileId": "роман", "remSleepMinutes": 82, "sleepMinutes": 367, "source": "health-connect", "steps": 26956, "workoutCount": 4, "workoutMinutes": 54 }, { "activeCaloriesKcal": 684, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-13", "deepSleepMinutes": 164, "deviceModel": "Redmi Watch 5", "heartRateAvg": 94.86459802538786, "heartRateMax": 134, "heartRateMin": 69, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.74803149606299, "profileId": "роман", "remSleepMinutes": 112, "sleepMinutes": 600, "source": "health-connect", "steps": 8380, "workoutCount": 2, "workoutMinutes": 46 }, { "activeCaloriesKcal": 722, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-14", "deepSleepMinutes": 133, "deviceModel": "Redmi Watch 5", "heartRateAvg": 97.719, "heartRateMax": 112, "heartRateMin": 84, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.5, "profileId": "роман", "remSleepMinutes": 115, "sleepMinutes": 477, "source": "health-connect", "steps": 10318, "workoutCount": 1, "workoutMinutes": 17 }, { "activeCaloriesKcal": 629, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-15", "deepSleepMinutes": 120, "deviceModel": "Redmi Watch 5", "heartRateAvg": 107.41193595342067, "heartRateMax": 134, "heartRateMin": 82, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.44360902255639, "profileId": "роман", "remSleepMinutes": 99, "sleepMinutes": 473, "source": "health-connect", "steps": 11954, "workoutCount": 1, "workoutMinutes": 87 }, { "activeCaloriesKcal": 865, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-16", "deepSleepMinutes": 108, "deviceModel": "Redmi Watch 5", "heartRateAvg": 101.74719710669078, "heartRateMax": 131, "heartRateMin": 77, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.26548672566372, "profileId": "роман", "remSleepMinutes": 97, "sleepMinutes": 495, "source": "health-connect", "steps": 12860, "workoutCount": 2, "workoutMinutes": 46 }, { "activeCaloriesKcal": 652, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-17", "deepSleepMinutes": 135, "deviceModel": "Redmi Watch 5", "heartRateAvg": 115.0159607120933, "heartRateMax": 171, "heartRateMin": 76, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.48387096774194, "profileId": "роман", "remSleepMinutes": 92, "sleepMinutes": 431, "source": "health-connect", "steps": 8514, "workoutCount": 3, "workoutMinutes": 29 }, { "activeCaloriesKcal": 778, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-18", "deepSleepMinutes": 118, "deviceModel": "Redmi Watch 5", "heartRateAvg": 118.2654288702929, "heartRateMax": 157, "heartRateMin": 77, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.60317460317461, "profileId": "роман", "remSleepMinutes": 98, "sleepMinutes": 493, "source": "health-connect", "steps": 8368, "workoutCount": 5, "workoutMinutes": 66 }, { "activeCaloriesKcal": 381, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-19", "deepSleepMinutes": 126, "deviceModel": "Redmi Watch 5", "heartRateAvg": 97.53691275167785, "heartRateMax": 105, "heartRateMin": 79, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.23684210526316, "profileId": "роман", "remSleepMinutes": 132, "sleepMinutes": 453, "source": "health-connect", "steps": 3988, "workoutCount": 1, "workoutMinutes": 23 }, { "activeCaloriesKcal": 812.6, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-20", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 108.51591781440506, "heartRateMax": 140, "heartRateMin": 71, "importedAt": "2026-06-30T02:05:58.788", "oxygenSaturationAvg": 96.15492957746478, "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 0, "source": "health-connect", "steps": 29158, "workoutCount": 6, "workoutMinutes": 182 }, { "activeCaloriesKcal": 22.4, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-21", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 96.63070539419087, "heartRateMax": 120, "heartRateMin": 69, "importedAt": "2026-06-30T02:05:58.788", "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 0, "source": "health-connect", "steps": 1011, "workoutCount": 1, "workoutMinutes": 12 }, { "activeCaloriesKcal": 71.5, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-22", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 97.56110283159464, "heartRateMax": 125, "heartRateMin": 74, "importedAt": "2026-06-30T02:05:58.788", "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 0, "source": "health-connect", "steps": 3512, "workoutCount": 1, "workoutMinutes": 22 }, { "activeCaloriesKcal": 12.4, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-23", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 99.32720909886264, "heartRateMax": 111, "heartRateMin": 66, "importedAt": "2026-06-30T02:05:58.788", "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 0, "source": "health-connect", "steps": 585, "workoutCount": 1, "workoutMinutes": 19 }, { "activeCaloriesKcal": 1.4, "dataOrigins": [ "com.xiaomi.wearable", "com.google.android.apps.fitness" ], "date": "2026-06-24", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 94.26756604834176, "heartRateMax": 131, "heartRateMin": 59, "importedAt": "2026-06-30T02:05:58.788", "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 0, "source": "health-connect", "steps": 205, "workoutCount": 2, "workoutMinutes": 30 }, { "activeCaloriesKcal": 0, "dataOrigins": [ "com.google.android.apps.fitness", "com.xiaomi.wearable" ], "date": "2026-06-25", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 96.9826464208243, "heartRateMax": 113, "heartRateMin": 71, "importedAt": "2026-06-30T02:05:58.788", "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 0, "source": "health-connect", "steps": 416, "workoutCount": 1, "workoutMinutes": 23 }, { "activeCaloriesKcal": 0, "dataOrigins": [ "com.google.android.apps.fitness", "com.xiaomi.wearable" ], "date": "2026-06-26", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 98.84484228473998, "heartRateMax": 127, "heartRateMin": 87, "importedAt": "2026-06-30T02:05:58.788", "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 0, "source": "health-connect", "steps": 1750, "workoutCount": 1, "workoutMinutes": 19 }, { "activeCaloriesKcal": 0, "dataOrigins": [ "com.google.android.apps.fitness", "com.xiaomi.wearable" ], "date": "2026-06-27", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 77.10913705583756, "heartRateMax": 118, "heartRateMin": 59, "importedAt": "2026-06-30T02:05:58.788", "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 0, "source": "health-connect", "steps": 630, "workoutCount": 1, "workoutMinutes": 92 }, { "activeCaloriesKcal": 0, "dataOrigins": [ "com.google.android.apps.fitness", "com.xiaomi.wearable" ], "date": "2026-06-28", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 99.50945945945946, "heartRateMax": 124, "heartRateMin": 67, "importedAt": "2026-06-30T02:05:58.788", "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 0, "source": "health-connect", "steps": 1656, "workoutCount": 1, "workoutMinutes": 12 }, { "activeCaloriesKcal": 0, "dataOrigins": [ "com.google.android.apps.fitness", "com.xiaomi.wearable" ], "date": "2026-06-29", "deepSleepMinutes": 0, "deviceModel": "Redmi Watch 5", "heartRateAvg": 109.95493300852618, "heartRateMax": 140, "heartRateMin": 76, "importedAt": "2026-06-30T02:05:58.788", "profileId": "роман", "remSleepMinutes": 0, "sleepMinutes": 0, "source": "health-connect", "steps": 620, "workoutCount": 1, "workoutMinutes": 13 } ] }