La pertenencia de una Account a una ChatRoom. En los chats directos,
chat_target apunta a la contraparte (la otra cuenta o entidad). is_admin marca a los
moderadores; is_restricted, a quien no puede escribir; is_joined, a quien sigue dentro de
la sala (salir es un soft-leave, no un borrado).
last_delivered_message_id y last_read_message_id son los punteros de entrega y de lectura
del miembro. message_ranges está reservado y no está implementado.
chat_target_type / chat_target_id y message_ranges están en $hidden; la contraparte
se expone como target_type.| Atributo | Tipo | Descripción |
|---|---|---|
id |
int |
|
created_at |
datetime\|null |
|
updated_at |
datetime\|null |
|
account_id |
int |
{@link Account} del miembro |
room_id |
int |
{@link ChatRoom} a la que pertenece el miembro |
last_delivered_message_id |
int\|null |
Id del último mensaje entregado a este miembro |
last_read_message_id |
int\|null |
Id del último mensaje leído por este miembro |
message_ranges |
Collection |
Rangos de mensajes visibles (reservado; sin implementar) |
chat_target_type |
string |
Tipo de la contraparte del chat directo (oculto; ver target_type) |
chat_target_id |
int |
Id de la contraparte (oculto) |
is_admin |
bool |
Si el miembro es administrador/moderador de la sala |
is_restricted |
bool |
Si el miembro tiene restringido escribir |
is_joined |
bool |
Si el miembro sigue dentro de la sala |
account |
Account |
{@link Account} del miembro |
allLogs |
ApiLog> |
|
channel |
string |
Canal de websocket de la sala del miembro |
chatTarget |
Model\|Eloquent |
Contraparte del chat directo (Account, Company, Order…) |
logs |
ApiLog> |
|
members |
Collection<int, ChatMember> |
Miembros de la misma sala |
messages |
ChatMessage> |
Mensajes de la sala del miembro |
room |
ChatRoom |
{@link ChatRoom} a la que pertenece el miembro |
target_type |
string\|null |
Nombre legible del tipo de la contraparte |
{
"id": 1,
"created_at": "2022-07-14 16:38:51",
"updated_at": "2022-07-21 21:25:30",
"account_id": 753,
"room_id": 1,
"last_delivered_message_id": 981,
"last_read_message_id": 981,
"is_admin": false,
"is_restricted": false,
"is_joined": true,
"target_type": null,
"channel": "private-ch-1"
}
{info} Soporta: Paginación Filters Carga dinámica
Listar membresías de chat
Devuelve las ChatMember de la cuenta autenticada (o la de user_id), cada una con
su ChatRoom y su contraparte (chatTarget).
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/chat-members |
Authorization |
{info} Soporta: Carga dinámica
Mostrar membresía de chat
Devuelve la ChatMember por su id, con su ChatRoom, su contraparte y los
demás miembros de la sala.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/chat-members/{chatRoomId} |
Authorization |
{info} Soporta: Carga dinámica
Dada la id de un ChatMessage, devuelve la ChatMember de la cuenta
autenticada en la sala de ese mensaje.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/chat-messages/{chatMessageId}/member |
Authorization |
account BelongsTo AccountallLogs HasMany ApiLogchatTarget BelongsTo Providerlogs HasMany ApiLogmembers HasMany ChatMembermessages HasMany ChatMessageroom BelongsTo ChatRoom