feat: implement comprehensive chat system with user presence management, notification handling, and avatar integration; enhance UI components for improved user experience
This commit is contained in:
129
CHAT_PROGRESSO_ATUAL.md
Normal file
129
CHAT_PROGRESSO_ATUAL.md
Normal file
@@ -0,0 +1,129 @@
|
||||
# 📊 Chat - Progresso Atual
|
||||
|
||||
## ✅ Implementado com Sucesso
|
||||
|
||||
### 1. **Backend - Query para Listar Usuários**
|
||||
Arquivo: `packages/backend/convex/usuarios.ts`
|
||||
|
||||
- ✅ Criada query `listarParaChat` que retorna:
|
||||
- Nome, email, matrícula
|
||||
- Avatar e foto de perfil (com URL)
|
||||
- Status de presença (online, offline, ausente, etc.)
|
||||
- Mensagem de status
|
||||
- Última atividade
|
||||
- ✅ Filtra apenas usuários ativos
|
||||
- ✅ Busca URLs das fotos de perfil no storage
|
||||
|
||||
### 2. **Backend - Mutation para Criar/Buscar Conversa**
|
||||
Arquivo: `packages/backend/convex/chat.ts`
|
||||
|
||||
- ✅ Criada mutation `criarOuBuscarConversaIndividual`
|
||||
- ✅ Busca conversa existente entre dois usuários
|
||||
- ✅ Se não existir, cria nova conversa
|
||||
- ✅ Suporta autenticação dupla (Better Auth + Sessões customizadas)
|
||||
|
||||
### 3. **Frontend - Lista de Usuários Estilo "Caixa de Email"**
|
||||
Arquivo: `apps/web/src/lib/components/chat/ChatList.svelte`
|
||||
|
||||
- ✅ Modificado para listar TODOS os usuários (não apenas conversas)
|
||||
- ✅ Filtra o próprio usuário da lista
|
||||
- ✅ Busca por nome, email ou matrícula
|
||||
- ✅ Ordenação: Online primeiro, depois por nome alfabético
|
||||
- ✅ Exibe avatar, foto, status de presença
|
||||
- ✅ Exibe mensagem de status ou email
|
||||
|
||||
### 4. **UI do Chat**
|
||||
|
||||
- ✅ Janela flutuante abre corretamente
|
||||
- ✅ Header com título "Chat" e botões funcionais
|
||||
- ✅ Campo de busca presente
|
||||
- ✅ Contador de usuários
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Problema Identificado
|
||||
|
||||
**Sintoma**: Chat abre mas mostra "Usuários do Sistema (0)" e "Nenhum usuário encontrado"
|
||||
|
||||
**Possíveis Causas**:
|
||||
1. A query `listarParaChat` pode estar retornando dados vazios
|
||||
2. O usuário logado pode não ter sido identificado corretamente
|
||||
3. Pode haver um problema de autenticação na query
|
||||
|
||||
**Screenshot**:
|
||||

|
||||
|
||||
---
|
||||
|
||||
## 🔧 Próximos Passos
|
||||
|
||||
### Prioridade ALTA
|
||||
1. **Investigar por que `listarParaChat` retorna 0 usuários**
|
||||
- Verificar logs do Convex
|
||||
- Testar a query diretamente
|
||||
- Verificar autenticação
|
||||
|
||||
2. **Corrigir exibição de usuários**
|
||||
- Garantir que usuários cadastrados apareçam
|
||||
- Testar com múltiplos usuários
|
||||
|
||||
3. **Testar envio/recebimento de mensagens**
|
||||
- Selecionar um usuário
|
||||
- Enviar mensagem
|
||||
- Verificar se mensagem é recebida
|
||||
|
||||
### Prioridade MÉDIA
|
||||
4. **Envio para usuários offline**
|
||||
- Garantir que mensagens sejam armazenadas
|
||||
- Notificações ao logar
|
||||
|
||||
5. **Melhorias de UX**
|
||||
- Loading states
|
||||
- Feedback visual
|
||||
- Animações suaves
|
||||
|
||||
### Prioridade BAIXA
|
||||
6. **Atualizar avatares** (conforme solicitado anteriormente)
|
||||
|
||||
---
|
||||
|
||||
## 📝 Arquivos Criados/Modificados
|
||||
|
||||
### Backend
|
||||
- ✅ `packages/backend/convex/usuarios.ts` - Adicionada `listarParaChat`
|
||||
- ✅ `packages/backend/convex/chat.ts` - Adicionada `criarOuBuscarConversaIndividual`
|
||||
|
||||
### Frontend
|
||||
- ✅ `apps/web/src/lib/components/chat/ChatList.svelte` - Completamente refatorado
|
||||
- ⚠️ Nenhum outro arquivo modificado
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Funcionalidades do Chat
|
||||
|
||||
### Já Implementadas
|
||||
- [x] Janela flutuante
|
||||
- [x] Botão abrir/fechar/minimizar
|
||||
- [x] Lista de usuários (estrutura pronta)
|
||||
- [x] Busca de usuários
|
||||
- [x] Criar conversa com clique
|
||||
|
||||
### Em Progresso
|
||||
- [ ] **Exibir usuários na lista** ⚠️ **PROBLEMA ATUAL**
|
||||
- [ ] Enviar mensagens
|
||||
- [ ] Receber mensagens
|
||||
- [ ] Notificações
|
||||
|
||||
### Pendentes
|
||||
- [ ] Envio programado
|
||||
- [ ] Compartilhamento de arquivos
|
||||
- [ ] Grupos/salas de reunião
|
||||
- [ ] Emojis
|
||||
- [ ] Mensagens offline
|
||||
|
||||
---
|
||||
|
||||
**Data**: 28/10/2025 - 02:54
|
||||
**Status**: ⏳ **EM PROGRESSO - Aguardando correção da listagem de usuários**
|
||||
**Pronto para**: Teste e debug da query `listarParaChat`
|
||||
|
||||
Reference in New Issue
Block a user