Projeto: Módulo Agenda para GDI6 - Sistema de Gerenciamento de Gabinete Parlamentar Objetivo Geral: Gerenciar compromissos do parlamentar e tarefas relacionadas, com atribuição de responsabilidades e integração com módulos municípios, contatos e usuários. 1. Estrutura de Dados (Tabelas) 1.1. Agenda_Compromissos - id_compromisso (PK) - titulo (varchar) - descricao (text) - data_inicio (datetime) - data_fim (datetime, nullable) - endereco (varchar) # novo campo para endereço completo - numero (varchar) # novo campo para número - bairro (varchar) # novo campo para bairro - cidade (varchar) # novo campo para cidade - estado (varchar) # novo campo para estado - cep (varchar) # novo campo para CEP - local (varchar) - id_municipio (FK) - observacoes (text) - status_compromisso (enum: Pendente, Confirmado, Cancelado, Realizado) - prioridade (enum: Baixa, Média, Alta, Urgente) - criado_por_id_usuario (FK) - data_criacao (datetime) - ultima_atualizacao (datetime) - link_mapa (varchar, opcional) - publico_geral (boolean) 1.2. Agenda_Compromissos_Contatos (Tabela de Junção) - id_compromisso (FK) - id_contato (FK) - papel_contato_evento (varchar, ex: Prefeito, Vereador, Autoridade, Organizador, Imprensa) - observacoes (text) - confirmacao_presenca (enum: Sim, Não, Pendente) 1.3. Agenda_Tarefas - id_tarefa (PK) - id_compromisso (FK) - descricao_tarefa (text) - data_limite (datetime) - status_tarefa (enum: Pendente, Em Andamento, Concluída, Atrasada, Cancelada) - prioridade_tarefa (enum: Baixa, Média, Alta, Urgente) - data_conclusao (datetime) - observacoes_tarefa (text) - tipo_tarefa (varchar, ex: Cerimonial, Fotografia, Gravação, Logística, Comunicação) 1.4. Agenda_Tarefas_Responsaveis (Tabela de Junção) - id_tarefa (FK) - id_responsavel (int, usuário ou contato) - tipo_responsavel (enum: Usuario, Contato) - papel_na_tarefa (varchar, ex: Responsável Primário, Suporte) - observacoes_responsavel (text) 2. Integrações 2.1. Módulo Municípios - Seleção de município ao criar/editar compromisso - Filtro e relatórios por município 2.2. Módulo Contatos - Associação múltipla de contatos a compromissos - Modal para exibir detalhes do contato ao clicar - Busca e filtro de compromissos por contato 2.3. Módulo Usuários - Registro do criador do compromisso - Atribuição de tarefas a usuários - Visualização da agenda pessoal e geral - Permissões para criação, edição e atribuição 3. Funcionalidades 3.1. Visualização da Agenda - Calendário mensal, semanal e diário - Lista de compromissos com filtros avançados - Visualização de tarefas pessoais e gerais 3.2. Cadastro/Edição de Compromisso - Formulário com campos para dados do compromisso - Busca e vinculação de municípios e contatos - Seção para adicionar e gerenciar tarefas 3.3. Gerenciamento de Tarefas - Criação, edição e exclusão de tarefas - Atribuição múltipla de responsáveis (usuários e contatos) - Status e prioridades das tarefas - Notificações e lembretes 3.4. Relatórios e Dashboard - Relatórios por município, status, prioridade, contatos - Dashboard com próximos compromissos e tarefas pendentes 3.5. Notificações e Alertas - Lembretes para compromissos e tarefas - Alertas para prazos e atrasos - Integração opcional com e-mail/SMS 4. Interface do Usuário (UI/UX) - Design responsivo para desktop, tablet e celular - Calendário interativo com drag & drop e cliques - Componentes de seleção com busca e multi-seleção - Modais para detalhes de compromissos, contatos e usuários - Uso de ícones e cores para status e prioridades - Gestão de permissões e acessos 5. Próximos Passos - Definição detalhada dos requisitos com equipe - Modelagem e criação das tabelas no banco de dados - Desenvolvimento do backend (APIs RESTful) - Desenvolvimento do frontend (React, Vue.js ou Angular) - Testes unitários, integração e aceitação - Homologação e implantação Este planejamento visa garantir um módulo agenda robusto, integrado e fácil de usar, que atenda às necessidades do gabinete parlamentar no GDI6.