SHA256
70 lines
2.7 KiB
Markdown
70 lines
2.7 KiB
Markdown
# 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` нет.
|
|
- Если нужно изменить смысл статуса, пишется новое статусное событие.
|