SHA256
Добавить дневник действий и статусы материалов
This commit is contained in:
@@ -90,6 +90,7 @@
|
||||
- `repost_disabled` — репосты временно отключены до будущей реализации
|
||||
- `entrypoint_edit_forbidden` — `TEXT_ENTRYPOINT` нельзя редактировать через `TEXT_EDIT_POST`
|
||||
- `status_confirmed_target_must_be_status_action` — `STATUS_CONFIRMED` должен ссылаться на статусный блок
|
||||
- `status_action_target_not_allowed` — выбранный `STATUS_ACTION` нельзя ставить на этот тип материала
|
||||
- `bad_channel_meta_line`, `channel_not_found`, `bad_channel_meta_*`, `channel_meta_*_too_long` — ошибки `TEXT_CHANNEL_META`
|
||||
- `internal_error`
|
||||
|
||||
@@ -144,13 +145,14 @@
|
||||
|
||||
6. **STATUS_ACTION (type=5)**
|
||||
- `STATUS_DONE_ONCE (10)`
|
||||
- `STATUS_INTERESTED (20)`
|
||||
- `STATUS_STARTED (30)`
|
||||
- `STATUS_IN_STUDY (40)`
|
||||
- `STATUS_COMPLETED (50)`
|
||||
- `STATUS_ABANDONED (60)`
|
||||
- `STATUS_LEARNED (70)`
|
||||
- `STATUS_CONFIRMED (80)`
|
||||
- `STATUS_LEARNED (20)`
|
||||
- `STATUS_SERVICE_PASSED (30)`
|
||||
- `STATUS_CONFIRMED (100)`
|
||||
- `STATUS_INTERESTED (110)`
|
||||
- `STATUS_STARTED (120)`
|
||||
- `STATUS_IN_STUDY (130)`
|
||||
- `STATUS_ABANDONED (140)`
|
||||
- `STATUS_COMPLETED (150)`
|
||||
|
||||
## 6. Практические payload-форматы для каналов и вложений
|
||||
|
||||
|
||||
@@ -14,11 +14,13 @@
|
||||
3. `GetMessageThread` — отдает дерево обсуждения вокруг конкретного сообщения:
|
||||
предки, фокус-сообщение, потомки.
|
||||
|
||||
4. `GetChannelsCounters` — отдает счетчики разделов каналов для пользователя.
|
||||
4. `GetPersonalDiary` — отдает виртуальную ленту `Личный дневник`, собранную из `STATUS_ACTION` текущего пользователя.
|
||||
|
||||
5. `ListGroupChats200` — отдает список групповых чатов типа `200`.
|
||||
5. `GetChannelsCounters` — отдает счетчики разделов каналов для пользователя.
|
||||
|
||||
6. `GetGroupDialog` — отдает сообщения конкретного группового чата типа `200`.
|
||||
6. `ListGroupChats200` — отдает список групповых чатов типа `200`.
|
||||
|
||||
7. `GetGroupDialog` — отдает сообщения конкретного группового чата типа `200`.
|
||||
|
||||
> На первом этапе мы **не используем курсоры** (`nextCursor`) и загружаем полные списки.
|
||||
|
||||
@@ -259,6 +261,29 @@
|
||||
|
||||
---
|
||||
|
||||
## 4) GetPersonalDiary
|
||||
|
||||
Возвращает виртуальный канал `Личный дневник` для самого пользователя.
|
||||
|
||||
- Вызов доступен только владельцу дневника.
|
||||
- Сообщения в ответе строятся из блоков `STATUS_ACTION`.
|
||||
- Поля `targetMsgSubType`, `targetText`, `targetAuthorLogin`, `targetAuthorBlockchainName`, `targetCreatedAtMs` описывают исходный материал, к которому относится действие.
|
||||
|
||||
### Request
|
||||
```json
|
||||
{
|
||||
"op": "GetPersonalDiary",
|
||||
"requestId": "req-4",
|
||||
"payload": {
|
||||
"login": "Alice",
|
||||
"limit": 200,
|
||||
"sort": "asc"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4) GetChannelsCounters
|
||||
|
||||
### Request
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
| `ListSubscriptionsFeed` | `06_Channels_Read_API.md` | лента каналов/подписок |
|
||||
| `GetChannelMessages` | `06_Channels_Read_API.md` | сообщения канала |
|
||||
| `GetMessageThread` | `06_Channels_Read_API.md` | тред сообщения |
|
||||
| `GetPersonalDiary` | `06_Channels_Read_API.md` | виртуальный канал `Личный дневник` из STATUS_ACTION |
|
||||
| `GetChannelsCounters` | `06_Channels_Read_API.md` | счетчики разделов каналов |
|
||||
| `ListGroupChats200` | `06_Channels_Read_API.md` | список групповых чатов типа `200` |
|
||||
| `GetGroupDialog` | `06_Channels_Read_API.md` | сообщения группового чата типа `200` |
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
- `type=2` — REACTION: LIKE/UNLIKE.
|
||||
- `type=3` — CONNECTION: FRIEND/CONTACT/FOLLOW/SPOUSE/PARENT/CHILD/SIBLING и обратные операции.
|
||||
- `type=4` — USER_PARAM: key/value-параметры пользователя.
|
||||
- `type=5` — STATUS_ACTION: DONE_ONCE/INTERESTED/STARTED/IN_STUDY/COMPLETED/ABANDONED/LEARNED/CONFIRMED.
|
||||
- `type=5` — STATUS_ACTION: DONE_ONCE/LEARNED/SERVICE_PASSED/CONFIRMED/INTERESTED/STARTED/IN_STUDY/ABANDONED/COMPLETED.
|
||||
|
||||
## Примечание
|
||||
|
||||
|
||||
@@ -5,29 +5,32 @@
|
||||
## Подтипы
|
||||
|
||||
1. `subType=10` — `STATUS_DONE_ONCE`
|
||||
- выполнил / прошёл один раз.
|
||||
- выполнил упражнение один раз.
|
||||
|
||||
2. `subType=20` — `STATUS_INTERESTED`
|
||||
- заинтересовался материалом.
|
||||
2. `subType=20` — `STATUS_LEARNED`
|
||||
- изучил упражнение / комплекс.
|
||||
|
||||
3. `subType=30` — `STATUS_STARTED`
|
||||
- начал.
|
||||
3. `subType=30` — `STATUS_SERVICE_PASSED`
|
||||
- прошёл услугу / процедуру.
|
||||
|
||||
4. `subType=40` — `STATUS_IN_STUDY`
|
||||
- находится в процессе полноценного изучения.
|
||||
|
||||
5. `subType=50` — `STATUS_COMPLETED`
|
||||
- завершил.
|
||||
|
||||
6. `subType=60` — `STATUS_ABANDONED`
|
||||
- бросил.
|
||||
|
||||
7. `subType=70` — `STATUS_LEARNED`
|
||||
- выучил упражнение / комплекс.
|
||||
|
||||
8. `subType=80` — `STATUS_CONFIRMED`
|
||||
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-формат:
|
||||
@@ -55,6 +58,10 @@
|
||||
- Текст может быть пустым: основной смысл задаётся самим `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`.
|
||||
|
||||
## Что не поддерживается
|
||||
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
# История изменений документации блокчейна
|
||||
|
||||
## 2026-08-09 23:30:06 +0400
|
||||
- Базовый коммит-ориентир: `ee185cf`.
|
||||
- Нумерация `STATUS_ACTION` уточнена под дневник действий:
|
||||
- `10` — `STATUS_DONE_ONCE`;
|
||||
- `20` — `STATUS_LEARNED`;
|
||||
- `30` — `STATUS_SERVICE_PASSED`;
|
||||
- `100` — `STATUS_CONFIRMED`;
|
||||
- `110/120/130/140/150` — курсные статусы `INTERESTED/STARTED/IN_STUDY/ABANDONED/COMPLETED`.
|
||||
- Зафиксированы допустимые связи `STATUS_ACTION -> target`:
|
||||
- упражнение: `DONE_ONCE`, `LEARNED`;
|
||||
- услуга: `SERVICE_PASSED`;
|
||||
- курс: `INTERESTED`, `STARTED`, `IN_STUDY`, `ABANDONED`, `COMPLETED`.
|
||||
- Добавлен серверный read API `GetPersonalDiary` для виртуальной ленты личного дневника из `STATUS_ACTION`.
|
||||
|
||||
## 2026-08-09 19:40:00 +0400
|
||||
- Базовый коммит-ориентир: `3552e05`.
|
||||
- Уточнено серверное чтение каналов и тредов для `TEXT_RATING`:
|
||||
|
||||
Reference in New Issue
Block a user