Chat da Igreja

Mensagens, Salas e Administração

Sistema de Chat

Comunicação moderna, segura e integrada para a igreja

"Sejam todos prontos para ouvir, tardios para falar"

Tiago 1:19

Acesso Rápido

Funcionalidades

Salas

  • • Públicas, Privadas, Ministério e Administrativas
  • • Limite de participantes e status
  • • Adição e remoção de participantes

Mensagens

  • • Envio com teclado (Ctrl+Enter) e botão
  • • Emojis e indicador de digitação
  • • Leitura e contagem de não lidas

Moderação

  • • Mute permanente e por período
  • • Exclusão de mensagens (admin/moderador)
  • • Limpeza de sala e em massa

Rotas Principais

// Membro
GET  /member/chat                 -> ChatController@index
GET  /member/chat/{room}          -> ChatController@show
POST /member/chat/{room}/send     -> ChatController@send
POST /member/chat/{room}/join     -> ChatController@join
POST /member/chat/{room}/leave    -> ChatController@leave
GET  /member/chat/{room}/messages -> ChatController@messages

// Admin
GET    /admin/chat                        -> Admin\ChatController@index
GET    /admin/chat/manage                 -> Admin\ChatController@manage
GET    /admin/chat/{room}                 -> Admin\ChatController@show
POST   /admin/chat/{room}/send            -> Admin\ChatController@sendMessage
DELETE /admin/chat/{room}/messages/{id}   -> Admin\ChatController@deleteMessage
DELETE /admin/chat/{room}/clear           -> Admin\ChatController@clearChat
POST   /admin/chat/bulk-clear             -> Admin\ChatController@bulkClear
GET    /admin/chat/clear-stats            -> Admin\ChatController@clearStats
POST   /admin/chat/backup                 -> Admin\ChatController@backupMessages

Estrutura do Banco

chat_rooms

id, nome, descricao, tipo, cor, icone,
max_participantes, ativo, configuracoes, created_at, updated_at

chat_participants

id, chat_room_id, user_id, tipo('admin','moderador','participante'),
ativo, ultimo_acesso, mute_until, mute_permanente, created_at, updated_at

chat_messages

id, chat_room_id, user_id, mensagem, tipo, editado,
created_at, updated_at

chat_message_reads

id, chat_message_id, user_id, lido_em, created_at, updated_at

Fluxo de Permissões

  • • Salas públicas: acesso livre
  • • Salas privadas: requer permissão `chat.private.access`
  • • Salas de ministério: apenas membros do ministério
  • • Salas administrativas: apenas `admin` e `super_admin`
  • • Mute impede envio e desabilita UI de mensagem

Formato de Resposta

Sucesso

{
  "success": true,
  "message": "Operação realizada com sucesso",
  "data": { "messages_deleted": 150 }
}

Erro

{
  "success": false,
  "message": "Acesso negado.",
  "code": "FORBIDDEN"
}

Solução de Problemas

  • • Limpar cache: `php artisan config:clear && php artisan route:clear && php artisan view:clear && php artisan cache:clear`
  • • Verificar permissões: atribuir `chat.access` a admin/super_admin
  • • Erro JSON em estatísticas: garantir header `Accept: application/json` e middleware retornando JSON
  • • Data truncated em participantes: garantir tipos válidos `admin|moderador|participante`
  • • Usuário mutado: UI desabilita input e backend bloqueia envio