# STATUS_ACTION блоки (`type=5`, `version=1`) `STATUS_ACTION` хранит статусные действия пользователя по отношению к конкретному материалу. ## Подтипы 1. `subType=10` — `STATUS_DONE_ONCE` - выполнил упражнение один раз. 2. `subType=20` — `STATUS_LEARNED` - изучил упражнение / комплекс. 3. `subType=30` — `STATUS_SERVICE_PASSED` - прошёл услугу / процедуру. 4. `subType=100` — `STATUS_CONFIRMED` - подтвердил чужой status-блок. 5. `subType=110` — `STATUS_INTERESTED` - заинтересовался курсом. 6. `subType=120` — `STATUS_STARTED` - начал курс. 7. `subType=130` — `STATUS_IN_STUDY` - находится в процессе полноценного изучения курса. 8. `subType=140` — `STATUS_ABANDONED` - бросил курс. 9. `subType=150` — `STATUS_COMPLETED` - завершил курс. ## Формат body Все `STATUS_ACTION` используют один и тот же бинарный body-формат: ```text [1] toBlockchainNameLen (uint8) [N] toBlockchainName UTF-8 [4] toBlockGlobalNumber [32] toBlockHash32 [2] textLenBytes (uint16) [M] text UTF-8 ``` Где: - `toBlockchainName` — блокчейн, в котором находится целевой материал; - `toBlockGlobalNumber` — номер целевого блока; - `toBlockHash32` — хэш целевого блока; - `text` — опциональное пояснение пользователя к статусу. ## Правила - Каждый `STATUS_ACTION` всегда является target-based сообщением. - `STATUS_ACTION` не является line-based сообщением канала. - Текст может быть пустым: основной смысл задаётся самим `subType`. - Базовые статусы пользователь ставит сам за себя. - `STATUS_CONFIRMED` ставится другим человеком на конкретный status-блок. - Допустимые target-типы: - `STATUS_DONE_ONCE` и `STATUS_LEARNED` только для `TEXT_EXERCISE`; - `STATUS_SERVICE_PASSED` только для `TEXT_SERVICE`; - `STATUS_INTERESTED`, `STATUS_STARTED`, `STATUS_IN_STUDY`, `STATUS_ABANDONED`, `STATUS_COMPLETED` только для `TEXT_COURSE`. ## Что не поддерживается - Отдельного `EDIT` для `STATUS_ACTION` нет. - Если нужно изменить смысл статуса, пишется новое статусное событие.