======================================== 1.1) ABERTURA DE CHAMADO ======================================== Tabela: tb_abertura_chamado Status: AJUSTAR (leve) Objetivo Permitir que o usuário abra chamados relacionados a: - bugs - melhorias - dúvidas - solicitações gerais Servindo como canal oficial de suporte e evolução do sistema. Campos essenciais do MVP - id_chamado | INT, PK, AUTO_INCREMENT (hoje está id) - id_empresa | INT, FK → tb_empresas.id_empresa (essencial no SaaS) - id_usuario | INT, FK → tb_usuario.id_usuario (hoje está usuario) - titulo | VARCHAR(150) - descricao | TEXT - status | ENUM('aberto','em_atendimento','aguardando','resolvido','fechado') - visualizado | TINYINT(1) DEFAULT 0 - criado_em | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP Campos opcionais (MVP+) - print_path | VARCHAR(255) NULL (screenshot / anexo inicial) - atualizado_em | DATETIME NULL Campos legados / a ajustar - data → substituir por criado_em - usuario → renomear para id_usuario Observações - Todo chamado pertence a uma empresa (id_empresa). - O usuário só pode visualizar chamados: -- da empresa à qual está vinculado (tb_usuario_empresa). - visualizado pode indicar se o suporte já abriu o chamado pela primeira vez. - O campo print_path pode futuramente ser removido em favor de uma tabela de anexos. Fluxo básico do chamado (MVP) - Usuário logado seleciona a empresa ativa - Abre chamado (bug / melhoria / dúvida) - Chamado nasce como status = 'aberto' - Suporte responde / altera status - Chamado é resolvido ou fechado ======================================== 1.2) RESPOSTAS DO CHAMADO ======================================== Tabela: tb_chamado_respostas Status: AJUSTAR (leve) Objetivo Registrar a comunicação entre usuário e suporte dentro de um chamado, mantendo o histórico completo de interações. Campos essenciais do MVP - id_resposta | INT, PK, AUTO_INCREMENT (hoje está id) - id_chamado | INT, FK → tb_abertura_chamado.id_chamado (hoje está chamado_id) - id_usuario | INT, FK → tb_usuario.id_usuario (hoje está usuario) - resposta | TEXT - status | ENUM('usuario','suporte','sistema') - criado_em | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP Campos opcionais (MVP+) - print_path | VARCHAR(255) NULL (hoje está print) Campos legados / a ajustar - data → substituir por criado_em - chamado_id → renomear para id_chamado - print → renomear para print_path Observações - Cada resposta pertence a um chamado. - O campo status indica quem respondeu: -- usuario → cliente -- suporte → equipe técnica -- sistema → mensagens automáticas (ex: mudança de status) - A ordem cronológica é definida por criado_em. Comportamento esperado (MVP) - Ao inserir resposta: -- atualizar status do chamado (ex: em_atendimento, aguardando) -- marcar visualizado = 0 para o outro lado - Respostas não devem ser editadas (histórico confiável). ======================================== 1.3) ANEXOS DO CHAMADO ======================================== Tabela: tb_abertura_chamado_anexos Status: AJUSTAR (leve) Objetivo Armazenar arquivos anexados a um chamado (prints, documentos, evidências), permitindo múltiplos anexos por chamado. Campos essenciais do MVP - id_anexo | INT, PK, AUTO_INCREMENT (hoje está id) - id_chamado | INT, FK → tb_abertura_chamado.id_chamado (hoje está chamado) - arquivo_path| VARCHAR(255) (hoje está anexo) - criado_em | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP (recomendado) Campos opcionais (MVP+) - id_usuario | INT, FK → tb_usuario.id_usuario (quem anexou) - tipo_mime | VARCHAR(100) NULL - tamanho | INT NULL (bytes) Campos legados / a ajustar - chamado → renomear para id_chamado - anexo → renomear para arquivo_path Observações - Um chamado pode possuir vários anexos. - Recomenda-se não salvar arquivo no banco, apenas o caminho. -- Controle de acesso: - somente usuários vinculados à empresa do chamado podem baixar. - Pode ser reutilizado futuramente para respostas (se quiser unificar anexos). ======================================== 1.4) STATUS DO CHAMADO ======================================== Tabela: tb_status_chamado Status: AJUSTAR (leve) Objetivo Definir os status possíveis de um chamado, permitindo controle de fluxo, visual e organização do atendimento. Campos essenciais do MVP - id_status | INT, PK, AUTO_INCREMENT (hoje está id) - status | VARCHAR(50) (ex: Aberto, Em atendimento, Resolvido) - formatacao | VARCHAR(100) NULL (classe CSS / cor / badge) - descricao | VARCHAR(255) NULL Campos opcionais (MVP+) - ordem | INT DEFAULT 0 (ordenação do fluxo) - ativo | TINYINT(1) DEFAULT 1 - criado_em | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP Campos legados / a ajustar - nenhum crítico. Observações - Os status podem ser: -- globais do sistema (MVP) -- ou customizáveis por empresa (MVP+) - O campo formatacao facilita: -- badges -- cores -- ícones no front-end - Recomenda-se não deletar status, apenas inativar (ativo = 0). Status padrão sugeridos (MVP) - Aberto - Em atendimento - Aguardando usuário - Resolvido - Fechado