>_ rehablogger
Система работает
← Все сессии
СЕССИЯ УСТРОЙСТВА

rehabapp_2026-09-07_10-02-46

Подключение…
Rehab Logger console · история загружается порциями по 250 записей
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] Authorization: Bearer 738|XNlE4afJ9CuyMEDZJ12xL8nmcXaPjUhWHQf3ynpT58ffba7d
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/days/2599
INFO [console] [DIO] statusCode: 200
INFO [console] [DIO] statusMessage: OK
INFO [console] [DIO] headers:
INFO [console] [DIO] x-served-by: rehabilitation.most.team
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Mon, 07 Sep 2026 07:11:59 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-09-07T07:11:59.176309Z","request_id":"2dde51d7-666f-4d22-aa10-71ad82a0f638","version":"v1"},"data":{"rehabilitation_day_id":2599,"day_sequence_number":3,"date":"2026-08-05","score":null,"interpretation":"excellent","is_control_day":false,"questionnaire":{"questionnaire_result_id":null,"count_questions":1},"workout":{"unit_id":937,"workout_id":109,"status":"completed","score":null,"interpretation":"excellent","workout_duration_start":10,"workout_duration_end":20,"exercises_count":1,"exercises":[{"id":85,"exercise_result_id":200,"sequence_number":1,"name":"Тренировка икроножных мышц стоя","image":"https://rehabilitation.most.team/storage/exercise/photos/01KSM578DSDH215A8W6P26RXEH.png","completion_status":"completed","score":88,"interpretation":"excellent","is_monitored":true,"instruction":{"exercise_name":"Тренировка икроножных мышц стоя","video":"https://rehabilitation.most.team/storage/exercise/videos/01KRJHJR20X1FNE739BG0QDYN4.mov","inventory":"Опора (стул, подоконник, стена)","warning":"Следите за положением пяток и стоп. Пятки не должны заваливаться внутрь (это признак неправильной нагрузки). Стопы должны оставаться параллельными на протяжении всего движения, для более наглядного контроля вы можете положить кубик для йоги между стопами\nСледите, чтобы спина была прямая\nНе уводите таз вперед/назад\nКолени держите выпрямленными","general_description":"В исходном положении стоя, ноги на ширине таза, руками опереться на спинку стула или стол, выполнить подъём на носки. Следить за тем, чтобы пятки не уходили внутрь, и стопы оставались параллельными. Цель – тренировка мышц голени.","steps":[{"exercise_id":85,"sequence_number":1,"step_text":"Встаньте прямо, лицом к устойчивой опоре (спинка стула, стол, подоконник, стена). Вы должны находиться боком оперированной ноги к камере"},{"exercise_id":85,"sequence_number":2,"step_text":"Поставьте ноги на ширине таза (примерно на расстоянии 10-15 см друг от друга). Стопы должны быть параллельны друг другу"},{"exercise_id":85,"sequence_number":3,"step_text":"Слегка обопритесь руками на опору для сохранения равновесия. Не переносите на руки весь вес тела"},{"exercise_id":85,"sequence_number":4,"step_text":"Спина прямая, живот слегка подтянут, взгляд направлен вперёд"},{"exercise_id":85,"sequence_number":5,"step_text":"Медленно и плавно поднимитесь как можно выше на носки, перенося вес тела на передние части стоп"},{"exercise_id":85,"sequence_number":6,"step_text":"Движение должно быть контролируемым. Максимально напрягите икроножные мышцы в верхней точке"},{"exercise_id":85,"sequence_number":7,"step_text":"Также под контролем медленно опустите пятки на пол, возвращаясь в исходное положение"},{"exercise_id":85,"sequence_number":8,"step_text":"Выполните поднятие на носки необходимое количество раз"}]}}]}}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-07T07:11:59.176309Z, request_id: 2dde51d7-666f-4d22-aa10-71ad82a0f638, version: v1}, data: {rehabilitation_day_id: 2599, day_sequence_number: 3, date: 2026-08-05, score: null, interpretation: excellent, is_control_day: false, questionnaire: {questionnaire_result_id: null, count_questions: 1}, workout: {unit_id: 937, workout_id: 109, status: completed, score: null, interpretation: excellent, workout_duration_start: 10, workout_duration_end: 20, exercises_count: 1, exercises: [{id: 85, exercise_result_id: 200, sequence_number: 1, name: Тренировка икроножных мышц стоя, image: https://rehabilitation.most.team/storage/exercise/photos/01KSM578DSDH215A8W6P26RXEH.png, completion_status: completed, score: 88, interpretation: excellent, is_monitored: true, instruction: {exercise_name: Тренировка икроножных мышц стоя, video: https://rehabilitation.most.team/storage/exercise/videos/01KRJHJR20X1FNE739BG0QDYN4.mov, inventory: Опора (стул, под
INFO [console] оконник, стена), warning: Следите за положением пяток и стоп. Пятки не должны заваливаться внутрь (это признак неправильной нагрузки). Стопы должны оставаться параллельными на протяжении всего движения, для более наглядного контроля вы можете положить кубик для йоги между стопами Следите, чтобы спина была прямая Не уводите таз вперед/назад Колени держите выпрямленными, general_description: В исходном положении стоя, ноги на ширине таза, руками опереться на спинку стула или стол, выполнить подъём на носки. Следить за тем, чтобы пятки не уходили внутрь, и стопы оставались параллельными. Цель – тренировка мышц голени., steps: [{exercise_id: 85, sequence_number: 1, step_text: Встаньте прямо, лицом к устойчивой опоре (спинка стула, стол, подоконник, стена). Вы должны находиться боком оперированной ноги к камере}, {exercise_id: 85, sequence_number: 2, step_text: Поставьте ноги на ширине таза (примерно на расстоянии 10-15 см друг от друга). Стопы должны быть параллельны друг другу}, {exercise
INFO [console] _id: 85, sequence_number: 3, step_text: Слегка обопритесь руками на опору для сохранения равновесия. Не переносите на руки весь вес тела}, {exercise_id: 85, sequence_number: 4, step_text: Спина прямая, живот слегка подтянут, взгляд направлен вперёд}, {exercise_id: 85, sequence_number: 5, step_text: Медленно и плавно поднимитесь как можно выше на носки, перенося вес тела на передние части стоп}, {exercise_id: 85, sequence_number: 6, step_text: Движение должно быть контролируемым. Максимально напрягите икроножные мышцы в верхней точке}, {exercise_id: 85, sequence_number: 7, step_text: Также под контролем медленно опустите пятки на пол, возвращаясь в исходное положение}, {exercise_id: 85, sequence_number: 8, step_text: Выполните поднятие на носки необходимое количество раз}]}}]}}}
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/days/2598
INFO [console] [DIO] method: GET
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] Authorization: Bearer 738|XNlE4afJ9CuyMEDZJ12xL8nmcXaPjUhWHQf3ynpT58ffba7d
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/days/2598
INFO [console] [DIO] statusCode: 200
INFO [console] [DIO] statusMessage: OK
INFO [console] [DIO] headers:
INFO [console] [DIO] x-served-by: rehabilitation.most.team
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Mon, 07 Sep 2026 07:12:00 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-09-07T07:12:00.448119Z","request_id":"e8556496-a14e-4a78-84aa-558c004005f4","version":"v1"},"data":{"rehabilitation_day_id":2598,"day_sequence_number":1,"date":"2026-08-03","score":null,"interpretation":"bad","is_control_day":false,"questionnaire":{"questionnaire_result_id":null,"count_questions":1},"workout":{"unit_id":937,"workout_id":108,"status":"completed","score":null,"interpretation":"bad","workout_duration_start":10,"workout_duration_end":20,"exercises_count":1,"exercises":[{"id":85,"exercise_result_id":199,"sequence_number":1,"name":"Тренировка икроножных мышц стоя","image":"https://rehabilitation.most.team/storage/exercise/photos/01KSM578DSDH215A8W6P26RXEH.png","completion_status":"completed","score":57,"interpretation":"satisfactory","is_monitored":true,"instruction":{"exercise_name":"Тренировка икроножных мышц стоя","video":"https://rehabilitation.most.team/storage/exercise/videos/01KRJHJR20X1FNE739BG0QDYN4.mov","inventory":"Опора (стул, подоконник, стена)","warning":"Следите за положением пяток и стоп. Пятки не должны заваливаться внутрь (это признак неправильной нагрузки). Стопы должны оставаться параллельными на протяжении всего движения, для более наглядного контроля вы можете положить кубик для йоги между стопами\nСледите, чтобы спина была прямая\nНе уводите таз вперед/назад\nКолени держите выпрямленными","general_description":"В исходном положении стоя, ноги на ширине таза, руками опереться на спинку стула или стол, выполнить подъём на носки. Следить за тем, чтобы пятки не уходили внутрь, и стопы оставались параллельными. Цель – тренировка мышц голени.","steps":[{"exercise_id":85,"sequence_number":1,"step_text":"Встаньте прямо, лицом к устойчивой опоре (спинка стула, стол, подоконник, стена). Вы должны находиться боком оперированной ноги к камере"},{"exercise_id":85,"sequence_number":2,"step_text":"Поставьте ноги на ширине таза (примерно на расстоянии 10-15 см друг от друга). Стопы должны быть параллельны друг другу"},{"exercise_id":85,"sequence_number":3,"step_text":"Слегка обопритесь руками на опору для сохранения равновесия. Не переносите на руки весь вес тела"},{"exercise_id":85,"sequence_number":4,"step_text":"Спина прямая, живот слегка подтянут, взгляд направлен вперёд"},{"exercise_id":85,"sequence_number":5,"step_text":"Медленно и плавно поднимитесь как можно выше на носки, перенося вес тела на передние части стоп"},{"exercise_id":85,"sequence_number":6,"step_text":"Движение должно быть контролируемым. Максимально напрягите икроножные мышцы в верхней точке"},{"exercise_id":85,"sequence_number":7,"step_text":"Также под контролем медленно опустите пятки на пол, возвращаясь в исходное положение"},{"exercise_id":85,"sequence_number":8,"step_text":"Выполните поднятие на носки необходимое количество раз"}]}}]}}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-07T07:12:00.448119Z, request_id: e8556496-a14e-4a78-84aa-558c004005f4, version: v1}, data: {rehabilitation_day_id: 2598, day_sequence_number: 1, date: 2026-08-03, score: null, interpretation: bad, is_control_day: false, questionnaire: {questionnaire_result_id: null, count_questions: 1}, workout: {unit_id: 937, workout_id: 108, status: completed, score: null, interpretation: bad, workout_duration_start: 10, workout_duration_end: 20, exercises_count: 1, exercises: [{id: 85, exercise_result_id: 199, sequence_number: 1, name: Тренировка икроножных мышц стоя, image: https://rehabilitation.most.team/storage/exercise/photos/01KSM578DSDH215A8W6P26RXEH.png, completion_status: completed, score: 57, interpretation: satisfactory, is_monitored: true, instruction: {exercise_name: Тренировка икроножных мышц стоя, video: https://rehabilitation.most.team/storage/exercise/videos/01KRJHJR20X1FNE739BG0QDYN4.mov, inventory: Опора (стул, подоконник,
INFO [console] стена), warning: Следите за положением пяток и стоп. Пятки не должны заваливаться внутрь (это признак неправильной нагрузки). Стопы должны оставаться параллельными на протяжении всего движения, для более наглядного контроля вы можете положить кубик для йоги между стопами Следите, чтобы спина была прямая Не уводите таз вперед/назад Колени держите выпрямленными, general_description: В исходном положении стоя, ноги на ширине таза, руками опереться на спинку стула или стол, выполнить подъём на носки. Следить за тем, чтобы пятки не уходили внутрь, и стопы оставались параллельными. Цель – тренировка мышц голени., steps: [{exercise_id: 85, sequence_number: 1, step_text: Встаньте прямо, лицом к устойчивой опоре (спинка стула, стол, подоконник, стена). Вы должны находиться боком оперированной ноги к камере}, {exercise_id: 85, sequence_number: 2, step_text: Поставьте ноги на ширине таза (примерно на расстоянии 10-15 см друг от друга). Стопы должны быть параллельны друг другу}, {exercise_id: 85,
INFO [console] sequence_number: 3, step_text: Слегка обопритесь руками на опору для сохранения равновесия. Не переносите на руки весь вес тела}, {exercise_id: 85, sequence_number: 4, step_text: Спина прямая, живот слегка подтянут, взгляд направлен вперёд}, {exercise_id: 85, sequence_number: 5, step_text: Медленно и плавно поднимитесь как можно выше на носки, перенося вес тела на передние части стоп}, {exercise_id: 85, sequence_number: 6, step_text: Движение должно быть контролируемым. Максимально напрягите икроножные мышцы в верхней точке}, {exercise_id: 85, sequence_number: 7, step_text: Также под контролем медленно опустите пятки на пол, возвращаясь в исходное положение}, {exercise_id: 85, sequence_number: 8, step_text: Выполните поднятие на носки необходимое количество раз}]}}]}}}
ERROR [widgets library] Null check operator used on a null value
Null check operator used on a null value
#0      TotalResultWorkout.build (package:testapp/features/training/presentation/widgets/total_result_workout.dart:40)
#1      StatelessElement.build (package:flutter/src/widgets/framework.dart:5889)
#2      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5817)
#3      Element.rebuild (package:flutter/src/widgets/framework.dart:5529)
#4      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799)
#5      ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793)
#6      Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#7      MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:7264)
#8      MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7279)
#9      Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#10     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#11     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7115)
#12     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#13     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#14     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7115)
#15     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#16     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#17     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7115)
#18     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#19     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#20     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7115)
#21     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#22     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#23     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7115)
#24     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#25     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#26     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7115)
#27     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#28     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#29     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841)
#30     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5982)
#31     Element.rebuild (package:flutter/src/widgets/framework.dart:5529)
#32     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799)
#33     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5973)
#34     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793)
#35     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#36     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#37     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7115)
#38     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#39     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#40     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841)
#41     Element.rebuild (package:flutter/src/widgets/framework.dart:5529)
#42     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799)
#43     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793)
#44     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#45     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#46     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7115)
#47     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#48     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#49     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841)
#50     Element.rebuild (package:flutter/src/widgets/framework.dart:5529)
#51     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799)
#52     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793)
#53     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#54     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#55     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7115)
#56     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#57     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#58     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7115)
#59     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#60     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#61     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841)
#62     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5982)
#63     Element.rebuild (package:flutter/src/widgets/framework.dart:5529)
#64     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799)
#65     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5973)
#66     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793)
#67     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#68     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#69     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841)
#70     Element.rebuild (package:flutter/src/widgets/framework.dart:5529)
#71     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799)
#72     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793)
#73     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#74     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#75     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7115)
#76     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#77     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#78     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841)
#79     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5982)
#80     Element.rebuild (package:flutter/src/widgets/framework.dart:5529)
#81     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799)
#82     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5973)
#83     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793)
#84     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#85     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#86     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841)
#87     Element.rebuild (package:flutter/src/widgets/framework.dart:5529)
#88     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799)
#89     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793)
#90     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#91     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#92     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841)
#93     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5982)
#94     Element.rebuild (package:flutter/src/widgets/framework.dart:5529)
#95     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799)
#96     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5973)
#97     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793)
#98     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#99     Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#100    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841)
#101    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5982)
#102    Element.rebuild (package:flutter/src/widgets/framework.dart:5529)
#103    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799)
#104    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5973)
#105    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793)
#106    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#107    Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#108    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841)
#109    Element.rebuild (package:flutter/src/widgets/framework.dart:5529)
#110    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799)
#111    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793)
#112    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#113    Element.updateChild (package:flutter/src/widgets/framework.dart:4059)
#114    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841)
#115    Element.rebuild (package:flutter/src/widgets/framework.dart:5529)
#116    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799)
#117    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793)
#118    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587)
#119    Element.updateChild (package:flutter/src/widgets/framework.dart:4053)
#120    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841)
#121    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5982)
#122    Element.rebuild (package:flutter/src/widgets/framework.dart:5529)
#123    StatefulElement.update (package:flutter/src/widgets/framework.dart:6007)
#124    Element.updateChild (package:flutter/src/widgets/framework.dart:4037)
#125    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841)
#126    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5982)
#127    Element.rebuild (package:flutter/src/widgets/framework.dart:5529)
#128    BuildScope._tryRebuild (package:flutter/src/widgets/framework.dart:2750)
#129    BuildScope._flushDirtyElements (package:flutter/src/widgets/framework.dart:2807)
#130    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3111)
#131    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1571)
#132    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:509)
#133    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1430)
#134    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1345)
#135    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1198)
#136    _rootRun (dart:async/zone_root.dart:35)
#137    _CustomZone.run (dart:async/zone.dart:726)
#138    _CustomZone.runGuarded (dart:async/zone.dart:625)
#139    _invoke (dart:ui/hooks.dart:425)
#140    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:447)
#141    _drawFrame (dart:ui/hooks.dart:395)
INFO [console] [ChatWebSocket] websocket connect started: url=wss://rehabilitation.most.team/app/local-reverb-key?protocol=7&client=flutter&version=1.0.0&flash=false
INFO [console] [ChatWebSocket] websocket connect finished: readyState=1
INFO [console] [ChatWebSocket] websocket listener attached
INFO [console] [ChatWebSocket] init completed: connected=false, socketId=null, pendingChannels={private-chat.82, private-user.305}
INFO [console] [ChatWebSocket] incoming raw: type=String, data={"event":"pusher:connection_established","data":"{\"socket_id\":\"293694720.12906105\",\"activity_timeout\":30}"}
INFO [console] [ChatWebSocket] incoming envelope: event=pusher:connection_established, channel=null, data={"socket_id":"293694720.12906105","activity_timeout":30}
INFO [console] [ChatWebSocket] connected: socketId=293694720.12906105, activityTimeout=30
INFO [console] [ChatWebSocket] auth request: socketId=293694720.12906105, channel=private-chat.82
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/broadcasting/auth
INFO [console] [DIO] method: POST
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] accept: application/json
INFO [console] [DIO] content-type: application/x-www-form-urlencoded
INFO [console] [DIO] Authorization: Bearer 738|XNlE4afJ9CuyMEDZJ12xL8nmcXaPjUhWHQf3ynpT58ffba7d
INFO [console] [DIO] data:
INFO [console] [DIO] {socket_id: 293694720.12906105, channel_name: private-chat.82}
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/broadcasting/auth
INFO [console] [DIO] statusCode: 403
INFO [console] [DIO] statusMessage: Forbidden
INFO [console] [DIO] headers:
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Mon, 07 Sep 2026 07:12:03 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"message":"","exception":"Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException","file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php","line":123,"trace":[{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php","line":84,"function":"verifyUserCanAccessChannel","class":"Illuminate\\Broadcasting\\Broadcasters\\Broadcaster","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php","line":553,"function":"auth","class":"Illuminate\\Broadcasting\\Broadcasters\\PusherBroadcaster","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php","line":363,"function":"__call","class":"Illuminate\\Broadcasting\\BroadcastManager","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php","line":24,"function":"__callStatic","class":"Illuminate\\Support\\Facades\\Facade","type":"::"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Controller.php","line":54,"function":"authenticate","class":"Illuminate\\Broadcasting\\BroadcastController","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php","line":43,"function":"callAction","class":"Illuminate\\Routing\\Controller","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php","line":265,"function":"dispatch","class":"Illuminate\\Routing\\ControllerDispatcher","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php","line":211,"function":"runController","class":"Illuminate\\Routing\\Route","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":822,"function":"run","class":"Illuminate\\Routing\\Route","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":180,"function":"{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php","line":63,"function":"{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Auth\\Middleware\\Authenticate","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":137,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":821,"function":"then","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":800,"function":"runRouteWithinStack","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":764,"function":"runRoute","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":753,"function":"dispatchToRoute","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php","line":200,"function":"dispatch","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":180,"function":"{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}","class":"Illuminate\\Foundation\\Http\\Kernel","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php","line":19,"function":"{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Livewire\\Features\\SupportDisablingBackButtonCache\\DisableBackButtonCacheMiddleware","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php","line":21,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php","line":31,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php","line":21,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php","line":51,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\TrimStrings","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php","line":27,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\ValidatePostSize","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php","line":109,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php","line":61,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\HandleCors","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php","line":58,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\TrustProxies","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php","line":22,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php","line":26,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\ValidatePathEncoding","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":137,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php","line":175,"function":"then","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php","line":144,"function":"sendRequestThroughRouter","class":"Illuminate\\Foundation\\Http\\Kernel","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php","line":1220,"function":"handle","class":"Illuminate\\Foundation\\Http\\Kernel","type":"->"},{"file":"/var/www/rehabilitation-backend/public/index.php","line":20,"function":"handleRequest","class":"Illuminate\\Foundation\\Application","type":"->"}]}
INFO [console] [ChatWebSocket] auth response: status=403, data={message: , exception: Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException, file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php, line: 123, trace: [{file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php, line: 84, function: verifyUserCanAccessChannel, class: Illuminate\Broadcasting\Broadcasters\Broadcaster, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php, line: 553, function: auth, class: Illuminate\Broadcasting\Broadcasters\PusherBroadcaster, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php, line: 363, function: __call, class: Illuminate\Broadcasting\BroadcastManager, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php, line: 24, function: __callStatic, class: Illuminate\Support\Facades\Facade, type: ::}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Controller.php, line: 54, function: authenticate, class: Illuminate\Broadcasting\BroadcastController, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php, line: 43, function: callAction, class: Illuminate\Routing\Controller, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php, line: 265, function: dispatch, class: Illuminate\Routing\ControllerDispatcher, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php, line: 211, function: runController, class: Illuminate\Routing\Route, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 822, function: run, class: Illuminate\Routing\Route, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 180, function: {closure:Illuminate\Routing\Router::runRouteWithinStack():821}, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php, line: 63, function: {closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Auth\Middleware\Authenticate, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 137, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 821, function: then, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 800, function: runRouteWithinStack, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 764, function: runRoute, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 753, function: dispatchToRoute, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php, line: 200, function: dispatch, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 180, function: {closure:Illuminate\Foundation\Http\Kernel::dispatchToRouter():197}, class: Illuminate\Foundation\Http\Kernel, type: ->}, {file: /var/www/rehabilitation-backend/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php, line: 19, function: {closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Livewire\Features\SupportDisablingBackButtonCache\DisableBackButtonCacheMiddleware, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php, line: 21, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php, line: 31, function: handle, class: Illuminate\Foundation\Http\Middleware\TransformsRequest, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php, line: 21, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php, line: 51, function: handle, class: Illuminate\Foundation\Http\Middleware\TransformsRequest, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\TrimStrings, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php, line: 27, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\ValidatePostSize, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php, line: 109, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php, line: 61, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\HandleCors, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php, line: 58, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\TrustProxies, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php, line: 22, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\InvokeDeferredCallbacks, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php, line: 26, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\ValidatePathEncoding, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 137, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php, line: 175, function: then, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php, line: 144, function: sendRequestThroughRouter, class: Illuminate\Foundation\Http\Kernel, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php, line: 1220, function: handle, class: Illuminate\Foundation\Http\Kernel, type: ->}, {file: /var/www/rehabilitation-backend/public/index.php, line: 20, function: handleRequest, class: Illuminate\Foundation\Application, type: ->}]}
INFO [console] [ChatWebSocket] subscribe error for private-chat.82: Bad state: Auth request failed: 403, data: {message: , exception: Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException, file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php, line: 123, trace: [{file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php, line: 84, function: verifyUserCanAccessChannel, class: Illuminate\Broadcasting\Broadcasters\Broadcaster, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php, line: 553, function: auth, class: Illuminate\Broadcasting\Broadcasters\PusherBroadcaster, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php, line: 363, function: __call, class: Illuminate\Broadcasting\BroadcastManager, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php, line: 24, function: __callStatic, class: Illuminate\Support\Facades\Facade, type: ::}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Controller.php, line: 54, function: authenticate, class: Illuminate\Broadcasting\BroadcastController, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php, line: 43, function: callAction, class: Illuminate\Routing\Controller, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php, line: 265, function: dispatch, class: Illuminate\Routing\ControllerDispatcher, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php, line: 211, function: runController, class: Illuminate\Routing\Route, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 822, function: run, class: Illuminate\Routing\Route, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 180, function: {closure:Illuminate\Routing\Router::runRouteWithinStack():821}, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php, line: 63, function: {closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Auth\Middleware\Authenticate, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 137, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 821, function: then, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 800, function: runRouteWithinStack, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 764, function: runRoute, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 753, function: dispatchToRoute, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php, line: 200, function: dispatch, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 180, function: {closure:Illuminate\Foundation\Http\Kernel::dispatchToRouter():197}, class: Illuminate\Foundation\Http\Kernel, type: ->}, {file: /var/www/rehabilitation-backend/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php, line: 19, function: {closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Livewire\Features\SupportDisablingBackButtonCache\DisableBackButtonCacheMiddleware, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php, line: 21, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php, line: 31, function: handle, class: Illuminate\Foundation\Http\Middleware\TransformsRequest, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php, line: 21, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php, line: 51, function: handle, class: Illuminate\Foundation\Http\Middleware\TransformsRequest, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\TrimStrings, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php, line: 27, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\ValidatePostSize, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php, line: 109, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php, line: 61, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\HandleCors, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php, line: 58, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\TrustProxies, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php, line: 22, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\InvokeDeferredCallbacks, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php, line: 26, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\ValidatePathEncoding, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 137, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php, line: 175, function: then, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php, line: 144, function: sendRequestThroughRouter, class: Illuminate\Foundation\Http\Kernel, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php, line: 1220, function: handle, class: Illuminate\Foundation\Http\Kernel, type: ->}, {file: /var/www/rehabilitation-backend/public/index.php, line: 20, function: handleRequest, class: Illuminate\Foundation\Application, type: ->}]}
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-07T07:12:05.166454Z, request_id: e90c546a-3dba-4799-aeb2-11e1693a1e36, version: v1}, data: {rehabilitation_name: Проверочка, rehabilitation_week_number: 2, title: 2 неделя - Контрольная неделя, is_control_week: true, average_score: 50, average_interpretation: satisfactory, days: [{rehabilitation_day_id: 2605, day_sequence_number: 12, date: 2026-08-14, score: null, interpretation: null, is_control_day: false}, {rehabilitation_day_id: 2609, day_sequence_number: 11, date: 2026-08-13, score: null, interpretation: null, is_control_day: true}, {rehabilitation_day_id: 2602, day_sequence_number: 10, date: 2026-08-12, score: null, interpretation: null, is_control_day: false}, {rehabilitation_day_id: 2601, day_sequence_number: 8, date: 2026-08-10, score: null, interpretation: null, is_control_day: false}]}}
INFO [console] [ChatWebSocket] auth request: socketId=293694720.12906105, channel=private-user.305
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/broadcasting/auth
INFO [console] [DIO] method: POST
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] accept: application/json
INFO [console] [DIO] content-type: application/x-www-form-urlencoded
INFO [console] [DIO] Authorization: Bearer 738|XNlE4afJ9CuyMEDZJ12xL8nmcXaPjUhWHQf3ynpT58ffba7d
INFO [console] [DIO] data:
INFO [console] [DIO] {socket_id: 293694720.12906105, channel_name: private-user.305}
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/broadcasting/auth
INFO [console] [DIO] statusCode: 403
INFO [console] [DIO] statusMessage: Forbidden
INFO [console] [DIO] headers:
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Mon, 07 Sep 2026 07:12:03 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"message":"","exception":"Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException","file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php","line":123,"trace":[{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php","line":84,"function":"verifyUserCanAccessChannel","class":"Illuminate\\Broadcasting\\Broadcasters\\Broadcaster","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php","line":553,"function":"auth","class":"Illuminate\\Broadcasting\\Broadcasters\\PusherBroadcaster","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php","line":363,"function":"__call","class":"Illuminate\\Broadcasting\\BroadcastManager","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php","line":24,"function":"__callStatic","class":"Illuminate\\Support\\Facades\\Facade","type":"::"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Controller.php","line":54,"function":"authenticate","class":"Illuminate\\Broadcasting\\BroadcastController","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php","line":43,"function":"callAction","class":"Illuminate\\Routing\\Controller","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php","line":265,"function":"dispatch","class":"Illuminate\\Routing\\ControllerDispatcher","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php","line":211,"function":"runController","class":"Illuminate\\Routing\\Route","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":822,"function":"run","class":"Illuminate\\Routing\\Route","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":180,"function":"{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php","line":63,"function":"{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Auth\\Middleware\\Authenticate","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":137,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":821,"function":"then","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":800,"function":"runRouteWithinStack","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":764,"function":"runRoute","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":753,"function":"dispatchToRoute","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php","line":200,"function":"dispatch","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":180,"function":"{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}","class":"Illuminate\\Foundation\\Http\\Kernel","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php","line":19,"function":"{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Livewire\\Features\\SupportDisablingBackButtonCache\\DisableBackButtonCacheMiddleware","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php","line":21,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php","line":31,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php","line":21,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php","line":51,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\TrimStrings","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php","line":27,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\ValidatePostSize","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php","line":109,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php","line":61,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\HandleCors","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php","line":58,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\TrustProxies","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php","line":22,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php","line":26,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\ValidatePathEncoding","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":137,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php","line":175,"function":"then","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php","line":144,"function":"sendRequestThroughRouter","class":"Illuminate\\Foundation\\Http\\Kernel","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php","line":1220,"function":"handle","class":"Illuminate\\Foundation\\Http\\Kernel","type":"->"},{"file":"/var/www/rehabilitation-backend/public/index.php","line":20,"function":"handleRequest","class":"Illuminate\\Foundation\\Application","type":"->"}]}
INFO [console] [DIO]
INFO [console] к, стена), warning: Следите за положением пяток и стоп. Пятки не должны заваливаться внутрь (это признак неправильной нагрузки). Стопы должны оставаться параллельными на протяжении всего движения, для более наглядного контроля вы можете положить кубик для йоги между стопами Следите, чтобы спина была прямая Не уводите таз вперед/назад Колени держите выпрямленными, general_description: В исходном положении стоя, ноги на ширине таза, руками опереться на спинку стула или стол, выполнить подъём на носки. Следить за тем, чтобы пятки не уходили внутрь, и стопы оставались параллельными. Цель – тренировка мышц голени., steps: [{exercise_id: 85, sequence_number: 1, step_text: Встаньте прямо, лицом к устойчивой опоре (спинка стула, стол, подоконник, стена). Вы должны находиться боком оперированной ноги к камере}, {exercise_id: 85, sequence_number: 2, step_text: Поставьте ноги на ширине таза (примерно на расстоянии 10-15 см друг от друга). Стопы должны быть параллельны друг другу}, {exercise_id: 8
INFO [console] 5, sequence_number: 3, step_text: Слегка обопритесь руками на опору для сохранения равновесия. Не переносите на руки весь вес тела}, {exercise_id: 85, sequence_number: 4, step_text: Спина прямая, живот слегка подтянут, взгляд направлен вперёд}, {exercise_id: 85, sequence_number: 5, step_text: Медленно и плавно поднимитесь как можно выше на носки, перенося вес тела на передние части стоп}, {exercise_id: 85, sequence_number: 6, step_text: Движение должно быть контролируемым. Максимально напрягите икроножные мышцы в верхней точке}, {exercise_id: 85, sequence_number: 7, step_text: Также под контролем медленно опустите пятки на пол, возвращаясь в исходное положение}, {exercise_id: 85, sequence_number: 8, step_text: Выполните поднятие на носки необходимое количество раз}]}}]}}}
INFO [console] [ChatWebSocket] subscribe error for private-user.305: Bad state: Auth request failed: 403, data: {message: , exception: Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException, file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php, line: 123, trace: [{file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php, line: 84, function: verifyUserCanAccessChannel, class: Illuminate\Broadcasting\Broadcasters\Broadcaster, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php, line: 553, function: auth, class: Illuminate\Broadcasting\Broadcasters\PusherBroadcaster, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php, line: 363, function: __call, class: Illuminate\Broadcasting\BroadcastManager, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php, line: 24, function: __callStatic, class: Illuminate\Support\Facades\Facade, type: ::}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Controller.php, line: 54, function: authenticate, class: Illuminate\Broadcasting\BroadcastController, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php, line: 43, function: callAction, class: Illuminate\Routing\Controller, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php, line: 265, function: dispatch, class: Illuminate\Routing\ControllerDispatcher, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php, line: 211, function: runController, class: Illuminate\Routing\Route, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 822, function: run, class: Illuminate\Routing\Route, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 180, function: {closure:Illuminate\Routing\Router::runRouteWithinStack():821}, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php, line: 63, function: {closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Auth\Middleware\Authenticate, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 137, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 821, function: then, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 800, function: runRouteWithinStack, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 764, function: runRoute, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 753, function: dispatchToRoute, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php, line: 200, function: dispatch, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 180, function: {closure:Illuminate\Foundation\Http\Kernel::dispatchToRouter():197}, class: Illuminate\Foundation\Http\Kernel, type: ->}, {file: /var/www/rehabilitation-backend/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php, line: 19, function: {closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Livewire\Features\SupportDisablingBackButtonCache\DisableBackButtonCacheMiddleware, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php, line: 21, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php, line: 31, function: handle, class: Illuminate\Foundation\Http\Middleware\TransformsRequest, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php, line: 21, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php, line: 51, function: handle, class: Illuminate\Foundation\Http\Middleware\TransformsRequest, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\TrimStrings, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php, line: 27, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\ValidatePostSize, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php, line: 109, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php, line: 61, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\HandleCors, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php, line: 58, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\TrustProxies, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php, line: 22, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\InvokeDeferredCallbacks, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php, line: 26, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\ValidatePathEncoding, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 137, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php, line: 175, function: then, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php, line: 144, function: sendRequestThroughRouter, class: Illuminate\Foundation\Http\Kernel, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php, line: 1220, function: handle, class: Illuminate\Foundation\Http\Kernel, type: ->}, {file: /var/www/rehabilitation-backend/public/index.php, line: 20, function: handleRequest, class: Illuminate\Foundation\Application, type: ->}]}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/week/2
INFO [console] [DIO] method: GET
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] Authorization: Bearer 738|XNlE4afJ9CuyMEDZJ12xL8nmcXaPjUhWHQf3ynpT58ffba7d
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/week/2
INFO [console] [DIO] statusCode: 200
INFO [console] [DIO] statusMessage: OK
INFO [console] [DIO] headers:
INFO [console] [DIO] x-served-by: rehabilitation.most.team
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Mon, 07 Sep 2026 07:12:05 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-09-07T07:12:05.166454Z","request_id":"e90c546a-3dba-4799-aeb2-11e1693a1e36","version":"v1"},"data":{"rehabilitation_name":"Проверочка","rehabilitation_week_number":2,"title":"2 неделя - Контрольная неделя","is_control_week":true,"average_score":50,"average_interpretation":"satisfactory","days":[{"rehabilitation_day_id":2605,"day_sequence_number":12,"date":"2026-08-14","score":null,"interpretation":null,"is_control_day":false},{"rehabilitation_day_id":2609,"day_sequence_number":11,"date":"2026-08-13","score":null,"interpretation":null,"is_control_day":true},{"rehabilitation_day_id":2602,"day_sequence_number":10,"date":"2026-08-12","score":null,"interpretation":null,"is_control_day":false},{"rehabilitation_day_id":2601,"day_sequence_number":8,"date":"2026-08-10","score":null,"interpretation":null,"is_control_day":false}]}}
INFO [console] [DIO]
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/days/2605
INFO [console] [DIO] method: GET
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] Authorization: Bearer 738|XNlE4afJ9CuyMEDZJ12xL8nmcXaPjUhWHQf3ynpT58ffba7d
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] [DIO] statusMessage: OK
INFO [console] [DIO] headers:
INFO [console] [DIO] x-served-by: rehabilitation.most.team
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Mon, 07 Sep 2026 07:12:06 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-09-07T07:12:06.260606Z","request_id":"34b4bff7-0dd8-4776-b1ae-3bde3e64410b","version":"v1"},"data":{"rehabilitation_day_id":2605,"day_sequence_number":12,"date":"2026-08-14","score":null,"interpretation":null,"is_control_day":false,"questionnaire":{"questionnaire_result_id":null,"count_questions":1},"workout":{"unit_id":937,"workout_id":null,"status":"not_done","score":null,"interpretation":null,"workout_duration_start":10,"workout_duration_end":20,"exercises_count":1,"exercises":[{"id":85,"exercise_result_id":null,"sequence_number":1,"name":"Тренировка икроножных мышц стоя","image":"https://rehabilitation.most.team/storage/exercise/photos/01KSM578DSDH215A8W6P26RXEH.png","completion_status":"not_completed","score":null,"interpretation":null,"is_monitored":false,"instruction":{"exercise_name":"Тренировка икроножных мышц стоя","video":"https://rehabilitation.most.team/storage/exercise/videos/01KRJHJR20X1FNE739BG0QDYN4.mov","inventory":"Опора (стул, подоконник, стена)","warning":"Следите за положением пяток и стоп. Пятки не должны заваливаться внутрь (это признак неправильной нагрузки). Стопы должны оставаться параллельными на протяжении всего движения, для более наглядного контроля вы можете положить кубик для йоги между стопами\nСледите, чтобы спина была прямая\nНе уводите таз вперед/назад\nКолени держите выпрямленными","general_description":"В исходном положении стоя, ноги на ширине таза, руками опереться на спинку стула или стол, выполнить подъём на носки. Следить за тем, чтобы пятки не уходили внутрь, и стопы оставались параллельными. Цель – тренировка мышц голени.","steps":[{"exercise_id":85,"sequence_number":1,"step_text":"Встаньте прямо, лицом к устойчивой опоре (спинка стула, стол, подоконник, стена). Вы должны находиться боком оперированной ноги к камере"},{"exercise_id":85,"sequence_number":2,"step_text":"Поставьте ноги на ширине таза (примерно на расстоянии 10-15 см друг от друга). Стопы должны быть параллельны друг другу"},{"exercise_id":85,"sequence_number":3,"step_text":"Слегка обопритесь руками на опору для сохранения равновесия. Не переносите на руки весь вес тела"},{"exercise_id":85,"sequence_number":4,"step_text":"Спина прямая, живот слегка подтянут, взгляд направлен вперёд"},{"exercise_id":85,"sequence_number":5,"step_text":"Медленно и плавно поднимитесь как можно выше на носки, перенося вес тела на передние части стоп"},{"exercise_id":85,"sequence_number":6,"step_text":"Движение должно быть контролируемым. Максимально напрягите икроножные мышцы в верхней точке"},{"exercise_id":85,"sequence_number":7,"step_text":"Также под контролем медленно опустите пятки на пол, возвращаясь в исходное положение"},{"exercise_id":85,"sequence_number":8,"step_text":"Выполните поднятие на носки необходимое количество раз"}]}}]}}}
INFO [console] [DIO]
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/days/2609
INFO [console] [DIO] method: GET
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] Authorization: Bearer 738|XNlE4afJ9CuyMEDZJ12xL8nmcXaPjUhWHQf3ynpT58ffba7d
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/days/2609
INFO [console] [DIO] statusCode: 200
INFO [console] [DIO] statusMessage: OK
INFO [console] [DIO] headers:
INFO [console] [DIO] x-served-by: rehabilitation.most.team
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Mon, 07 Sep 2026 07:12:08 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-09-07T07:12:08.041150Z","request_id":"9d344a89-63eb-4116-9d41-a5af47684bf8","version":"v1"},"data":{"rehabilitation_day_id":2609,"day_sequence_number":11,"date":"2026-08-13","score":null,"interpretation":null,"is_control_day":true,"questionnaire":{"questionnaire_result_id":null,"count_questions":1},"workout":{"unit_id":937,"workout_id":null,"status":"not_done","score":null,"interpretation":null,"workout_duration_start":10,"workout_duration_end":20,"exercises_count":1,"exercises":[{"id":85,"exercise_result_id":null,"sequence_number":1,"name":"Тренировка икроножных мышц стоя","image":"https://rehabilitation.most.team/storage/exercise/photos/01KSM578DSDH215A8W6P26RXEH.png","completion_status":"not_completed","score":null,"interpretation":null,"is_monitored":false,"instruction":{"exercise_name":"Тренировка икроножных мышц стоя","video":"https://rehabilitation.most.team/storage/exercise/videos/01KRJHJR20X1FNE739BG0QDYN4.mov","inventory":"Опора (стул, подоконник, стена)","warning":"Следите за положением пяток и стоп. Пятки не должны заваливаться внутрь (это признак неправильной нагрузки). Стопы должны оставаться параллельными на протяжении всего движения, для более наглядного контроля вы можете положить кубик для йоги между стопами\nСледите, чтобы спина была прямая\nНе уводите таз вперед/назад\nКолени держите выпрямленными","general_description":"В исходном положении стоя, ноги на ширине таза, руками опереться на спинку стула или стол, выполнить подъём на носки. Следить за тем, чтобы пятки не уходили внутрь, и стопы оставались параллельными. Цель – тренировка мышц голени.","steps":[{"exercise_id":85,"sequence_number":1,"step_text":"Встаньте прямо, лицом к устойчивой опоре (спинка стула, стол, подоконник, стена). Вы должны находиться боком оперированной ноги к камере"},{"exercise_id":85,"sequence_number":2,"step_text":"Поставьте ноги на ширине таза (примерно на расстоянии 10-15 см друг от друга). Стопы должны быть параллельны друг другу"},{"exercise_id":85,"sequence_number":3,"step_text":"Слегка обопритесь руками на опору для сохранения равновесия. Не переносите на руки весь вес тела"},{"exercise_id":85,"sequence_number":4,"step_text":"Спина прямая, живот слегка подтянут, взгляд направлен вперёд"},{"exercise_id":85,"sequence_number":5,"step_text":"Медленно и плавно поднимитесь как можно выше на носки, перенося вес тела на передние части стоп"},{"exercise_id":85,"sequence_number":6,"step_text":"Движение должно быть контролируемым. Максимально напрягите икроножные мышцы в верхней точке"},{"exercise_id":85,"sequence_number":7,"step_text":"Также под контролем медленно опустите пятки на пол, возвращаясь в исходное положение"},{"exercise_id":85,"sequence_number":8,"step_text":"Выполните поднятие на носки необходимое количество раз"}]}}]}}}
INFO [console] [DIO]
$
250 строкUTF-8LIVE