Plano de Implementação do Módulo Agenda - Gabinete Digital Integrado 1. Banco de Dados ----------------- - Alterar tabela agenda_eventos: - Adicionar colunas: - status ENUM('agendado', 'concluido', 'cancelado', 'remarcado') DEFAULT 'agendado' - prioridade ENUM('normal', 'alta', 'urgente') DEFAULT 'normal' - recorrencia VARCHAR(50) DEFAULT NULL - id_municipio INT DEFAULT NULL (FK para municipios) - id_atendimento INT DEFAULT NULL (FK para atendimentos) - id_oficio INT DEFAULT NULL (FK para oficios) - id_demanda INT DEFAULT NULL (FK para demandas) - id_usuario_criador INT DEFAULT NULL (FK para usuarios) - google_event_id VARCHAR(255) UNIQUE DEFAULT NULL - google_calendar_id VARCHAR(255) DEFAULT NULL - Criar tabela evento_participantes: - id INT AUTO_INCREMENT PRIMARY KEY - id_evento INT NOT NULL (FK para agenda_eventos) - id_contato INT DEFAULT NULL (FK para contatos) - id_usuario INT DEFAULT NULL (FK para usuarios) - email_externo VARCHAR(255) DEFAULT NULL - Constraints FK para integridade referencial - Criar tabela agenda_notificacoes: - id INT AUTO_INCREMENT PRIMARY KEY - id_evento INT NOT NULL (FK para agenda_eventos) - tipo ENUM('email', 'whatsapp', 'sistema') DEFAULT 'sistema' - data_envio DATETIME - enviado BOOLEAN DEFAULT FALSE - mensagem TEXT - Criar tabela log_lembretes_whatsapp: - id INT AUTO_INCREMENT PRIMARY KEY - id_evento INT NOT NULL (FK para agenda_eventos) - id_contato INT DEFAULT NULL (FK para contatos) - numero_destino VARCHAR(20) NOT NULL - mensagem TEXT NOT NULL - status ENUM('enviado', 'falha', 'pendente') DEFAULT 'pendente' - data_envio DATETIME DEFAULT CURRENT_TIMESTAMP 2. Backend ---------- - Criar endpoints RESTful para: - GET /api/eventos?start=&end= : Listar eventos no período - POST /api/eventos : Criar evento - PUT /api/eventos/{id} : Atualizar evento - DELETE /api/eventos/{id} : Excluir evento - POST /api/google-calendar/sync : Sincronizar com Google Calendar - Implementar lógica para: - Gerenciamento de recorrência de eventos - Geração e envio de lembretes (email, WhatsApp, sistema) - Integração OAuth 2.0 com Google Calendar API - Sincronização bidirecional de eventos com Google Calendar - Implementar envio de lembretes via WhatsApp: - Integração com API externa (ex: Twilio, Zenvia) - Registro dos envios na tabela log_lembretes_whatsapp 3. Frontend ----------- - Integrar biblioteca FullCalendar (JS e CSS) para visualização: - Visualizações mensal, semanal, diária - Navegação entre períodos - Exibição de eventos com detalhes - Criar formulários/modais para criação e edição de eventos: - Campos: título, descrição, data/hora início e fim, local, status, prioridade, recorrência, participantes, categoria, município, etc. - Validação e feedback ao usuário - Implementar filtros e busca conforme dashboard atual: - Filtro por período, categoria, participantes, município 4. Testes e Validação --------------------- - Testar todas as operações CRUD de eventos - Testar sincronização com Google Calendar - Testar envio de lembretes por email e WhatsApp - Testar interface do usuário e usabilidade do calendário - Garantir segurança e controle de acesso Este documento servirá como guia para o desenvolvimento do módulo Agenda, garantindo alinhamento com as necessidades do Gabinete Digital Integrado.