WP Manifestindependent plugin directory
manifest / social / intranet-user-chat

Intranet User Chat

Base arquitetural para chat interno entre usuarios logados.

by Dev9 · github.com/markovivas/intranet-user-chat

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/markovivas/intranet-user-chat/archive/refs/heads/main.zip

Plugin base para um chat interno entre usuarios autenticados, com foco em conversa privada, mensagens nao lidas e experiencia parecida com mensageiros corporativos estilo MSN.

Objetivo da arquitetura

  • Conversa entre usuarios logados
  • Caixa de entrada com mensagens nao lidas
  • Entrega de mensagens pendentes ao entrar no sistema
  • Estrutura preparada para evoluir de polling para tempo real
  • Implementacao desacoplada do tema

Estrutura inicial

  • intranet-user-chat.php: bootstrap do plugin
  • includes/class-intranet-user-chat-plugin.php: orquestracao principal
  • includes/class-intranet-user-chat-installer.php: criacao futura de tabelas e opcoes
  • includes/class-intranet-user-chat-rest-controller.php: endpoints REST planejados
  • includes/class-intranet-user-chat-service.php: regras de negocio do chat
  • includes/class-intranet-user-chat-repository.php: acesso ao banco
  • assets/css/chat.css: estilos base
  • assets/js/chat.js: bootstrap de frontend
  • templates/chat-shell.php: container visual do chat

Modelo ideal

Fase 1

  • Conversas privadas 1:1
  • Lista de usuarios pesquisavel
  • Caixa de conversa
  • Indicador de nao lidas
  • Polling leve

Fase 2

  • Presenca online
  • Digitando...
  • Som/notificacao
  • Janela flutuante estilo MSN

Fase 3

  • Grupos
  • Anexos
  • WebSocket
  • Moderacao e auditoria

Banco de dados sugerido

  • wp_iuc_threads

    • id
    • type (direct, futuro group)
    • created_at
    • updated_at
  • wp_iuc_thread_participants

    • id
    • thread_id
    • user_id
    • last_read_message_id
    • joined_at
  • wp_iuc_messages

    • id
    • thread_id
    • sender_user_id
    • message_text
    • message_type
    • created_at
    • edited_at
    • deleted_at

Fluxo recomendado

  1. Usuario A abre o chat
  2. Plugin busca threads do usuario
  3. Usuario A envia mensagem para usuario B
  4. Mensagem fica persistida
  5. Usuario B recebe badge de nao lidas ao navegar ou entrar novamente
  6. No futuro, WebSocket substitui o polling sem quebrar a camada de servico

Proximo passo recomendado

Implementar as tabelas do plugin e os endpoints REST para:

  • listar conversas
  • listar mensagens por conversa
  • enviar mensagem
  • marcar como lida