Files
SHiNE-server/docs/Blockchain/15_STATUS_ACTION_Blocks.md

2.7 KiB

STATUS_ACTION блоки (type=5, version=1)

STATUS_ACTION хранит статусные действия пользователя по отношению к конкретному материалу.

Подтипы

  1. subType=10STATUS_DONE_ONCE

    • выполнил упражнение один раз.
  2. subType=20STATUS_LEARNED

    • изучил упражнение / комплекс.
  3. subType=30STATUS_SERVICE_PASSED

    • прошёл услугу / процедуру.
  4. subType=100STATUS_CONFIRMED

    • подтвердил чужой status-блок.
  5. subType=110STATUS_INTERESTED

    • заинтересовался курсом.
  6. subType=120STATUS_STARTED

    • начал курс.
  7. subType=130STATUS_IN_STUDY

    • находится в процессе полноценного изучения курса.
  8. subType=140STATUS_ABANDONED

    • бросил курс.
  9. subType=150STATUS_COMPLETED

    • завершил курс.

Формат body

Все STATUS_ACTION используют один и тот же бинарный body-формат:

[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 нет.
  • Если нужно изменить смысл статуса, пишется новое статусное событие.