38 lines
1.8 KiB
Markdown
38 lines
1.8 KiB
Markdown
# TEXT блоки (`type=1`, `version=1`)
|
||
|
||
TEXT-тип хранит сообщения и редактирования.
|
||
|
||
## Подтипы
|
||
|
||
1. `subType=10` — `TEXT_POST`
|
||
- пост в линии канала;
|
||
- содержит line-поля + текст.
|
||
|
||
2. `subType=11` — `TEXT_EDIT_POST`
|
||
- редактирование поста;
|
||
- line-поля + target на оригинальный POST + новый текст.
|
||
|
||
3. `subType=20` — `TEXT_REPLY`
|
||
- ответ на сообщение;
|
||
- target (`toBlockchainName`, `toBlockGlobalNumber`, `toBlockHash32`) + текст.
|
||
|
||
4. `subType=21` — `TEXT_EDIT_REPLY`
|
||
- редактирование ответа;
|
||
- target на исходный REPLY + новый текст.
|
||
- допускается пустой `text` для логического удаления сообщения (без физического удаления блока).
|
||
|
||
5. `subType=30` — `TEXT_REPOST`
|
||
- репост сообщения в линию канала;
|
||
- содержит line-поля + target на оригинальное сообщение + текст комментария;
|
||
- на текущем этапе продуктовой логики репост не редактируется (версии не накапливаются).
|
||
|
||
## Правило для edit
|
||
|
||
`EDIT_POST` и `EDIT_REPLY` должны ссылаться на **оригинальный** блок, а не на предыдущий edit.
|
||
|
||
## Пустой text в edit
|
||
|
||
- Для `TEXT_EDIT_POST` и `TEXT_EDIT_REPLY` допустим `textLen=0`.
|
||
- Такой edit трактуется как логическое удаление содержимого сообщения.
|
||
- Для удаления используется именно edit-блок; отдельного `DELETE`-подтипа нет.
|