# Черновик CHANNEL_MEMBERSHIP для каналов ## Статус документа Этот файл является отдельным отложенным черновиком. Важно: - тема временно вынесена из основной первой итерации; - в текущую реализацию не входит; - документ нужен, чтобы не потерять уже согласованные мысли и вернуться к ним позже. ## Зачем вынесено отдельно `CHANNEL_MEMBERSHIP` пока решено не делать вместе с `TEXT` и `STATUS_ACTION`, чтобы: - не перегружать текущую реализацию; - не смешивать две разные задачи; - спокойно завершить первую итерацию по контенту и статусам; - вернуться к membership позже отдельным этапом. ## Отложенная схема ссылок На текущий момент в отложенный черновик заносится такая схема: - `JOIN_REQUEST` ссылается на root-блок канала; - `JOIN_ACCEPTED` ссылается на `JOIN_REQUEST`; - `LEFT` ссылается на root-блок канала; - `REMOVED` ссылается на последнее membership-событие этого участника в этом канале, лучше всего на `JOIN_ACCEPTED`. ## Предварительные подтипы Если тема будет возвращена в реализацию, предварительно рассматриваются: - `subType=10` — `CHANNEL_JOIN_REQUEST` - `subType=20` — `CHANNEL_JOIN_ACCEPTED` - `subType=30` — `CHANNEL_LEFT` - `subType=40` — `CHANNEL_REMOVED` ## Что ещё нужно будет отдельно решить позже Перед возвратом к теме нужно будет отдельно утвердить: - точный байтовый формат `CHANNEL_MEMBERSHIP`; - в чьём блокчейне пишутся membership-события; - политику прав доступа: - кто может писать `JOIN_ACCEPTED`; - кто может писать `REMOVED`; - кто и как подтверждает актуальный состав канала; - как сервер строит read-model текущего состава канала; - как UI показывает pending-заявки, принятых участников, вышедших и исключённых. ## Краткий итог `CHANNEL_MEMBERSHIP` не отменён, а именно отложен. Следующий рекомендуемый шаг: - сначала завершить первую итерацию `TEXT + STATUS_ACTION`; - потом отдельным этапом вернуться к membership-логике каналов.