- feito ajuste do fluxo GLPI->SN para tratar status 5 (resolve no SN) e status 6 (aviso definitivo e retirada de monitoramento)
- feito ajuste de reabertura SN->GLPI quando ticket estiver solved no GLPI
- feito ajuste de data/hora de comments/worknotes para evitar inversão de data
- feito ajuste de vínculo Ticket Externo no SN com validação de persistência e retry idempotente
- feito ajuste de filtro de journals para ignorar SOTHIS.CAOA e admin.caoa por configuração
- feito inclusão de monitor dedicado de encerramento definitivo (processGlpiClosureController)
- feito atualização de flags de controle (ENABLE_STATUS_SYNC, ENABLE_GLPI_CLOSE_CRON, ENABLE_GLPI_WEBHOOK)
- feito atualização da documentação (README, docs/regrasdenegocio.md, docs/fluxo.md, docs/casosdeuso.md, docs/checklist.md)
- feito ajuste de direção de status para respeitar source_last e evitar reabertura indevida
- feito tratamento de reabertura SN->GLPI após resolução, mantendo bloqueio para fechamento permanente
- feito ajuste de finalização GLPI->SN para propagar resolução/fechamento corretamente
- feito correção de runtime no processStatusController (uso de variável antes da inicialização)
- feito correção para não prender ticket em status transitório de comentários
- feito preservação de ordem cronológica e datas reais de comments/work_notes SN no GLPI
- feito normalização de autor (ex.: email/login para nome amigável)
- feito destaque visual para mensagens automáticas e encerramento no GLPI
- feito sanitização de justificativa na regra de fora de escopo
- feito padronização de variáveis de ambiente e remoção de inconsistências de config
- feito separação de SQL destrutivo para arquivo de manutenção dedicado
- coleta comments e work_notes do SN\n- envia comments como followup e work_notes como tarefa no GLPI\n- usa sys_created_by como author no banco intermediario\n- formata mensagem SN->GLPI com autor no cabecalho\n- aplica regras de resolucao/encerramento SN sem fechar GLPI\n- documenta regras de negocio no README
- Adiciona comentário estilizado no GLPI quando SN marca Resolvido, Encerrado ou Encerrado - Omitido
- Marca Sync como "closed" para remover o chamado da fila de sincronização
- Corrige a direção do bastão da verdade para preservar SNOW -> GLPI quando SN foi a última origem
- normaliza comentarios e logs (ASCII)
- corrige campo no createSyncRecord (glpi_ticket_id)
- remove metodo duplicado updateSourceLast
- corrige uso de ID errado na atualizacao de status/comentarios
- atualiza o README
- Alterado Código para que use o node cron e o gerenciamento seja feito pelo pm2
- Bug que não envia uma atualização para o SN quando um chamo é fechado fora do escopo corrigido
* **Enriquecimento de Dados e Criação de Tickets:**
* Requisições do ServiceNow com descrição vazia agora são enriquecidas buscando dados de variáveis de catálogo (`sc_item_option`), como justificativas e telefones, melhorando a qualidade dos tickets criados no GLPI.
* O `ticketGlpiModel` agora formata descrições em tabelas HTML para melhor legibilidade no GLPI.
* **Refatoração e Novas Funções:**
* O `servicenowService` foi expandido com funções para fechar, atualizar status e adicionar notas de trabalho (`work_notes`) diretamente nos tickets do ServiceNow.
* **Coleta de dados de telefone e ajustes para coletar o Assigment correro
* Water Mark Ajustado para que processo o chamado apenas uma vez.
- **Sincronização Inteligente:** O sistema agora detecta mudanças de estado em qualquer uma das plataformas e propaga a atualização para a outra, respeitando a 'fonte da verdade' (`source_last`).
- **Regra 'Fora do Escopo':** Implementada a regra de negócio para tickets marcados como 'Fora do Escopo' no GLPI (solutiontypes_id = 27). Esses tickets agora são ignorados na sincronização, têm seu status finalizado no GLPI e uma nota informativa é adicionada no ServiceNow.
- **Watermark (Marca d'água):** A coleta de novos tickets do ServiceNow foi otimizada com um sistema de marca d'água, buscando apenas registros atualizados desde a última execução bem-sucedida, o que melhora significativamente a performance.
- **Resiliência:** Adicionado um `processErrorController` que reseta tickets com status de erro, permitindo que sejam reprocessados automaticamente no próximo ciclo.
Testes de fluxo foram realizados com sucesso, validando a criação, resolução (SN <-> GLPI) e a regra 'Fora do Escopo'.
Pendências para a próxima fase:
1. Validar melhor o fluxo de reabertura de chamados em ambas as direções.
2. Garantir que a `work_note` enviada para o ServiceNow na regra 'Fora do Escopo' seja devidamente sanitizada."
- Criado modelos individuais por tabela do banco de dados
- Sincronização com tabela ticket_sync após cada comentário
- Atualização da tabela ticket_updates para conter apenas infos necessárias
- glpiCommentService criado para gerir toda operação.
- Adição de Titulo composto dinamicamente "TIPO - ENTIDADE - PROBLEMA"
- Adicionado Fluxo completo da criação do banco de dados
- Adicionado verificação se o arquivo .csv foi modificado nos ultimos 2 minutos, se sim a tabela de mapping é atualizada
- Tabelas criadas para mapear entidades e sincronizar atualizações
- Atualização do banco de dados para melhor leitura e espaço para melhorias
- Atualização dos modelos para melhor sincronia com banco de dados
- Adicionada variaveis ao .ENV
- Criado sistema que efetua leitura do csv e aplica no banco de dados, revisando o conteudo do GLPI e do banco.
- Busca de tickets pendentes no banco de dados.
- Mapeamento de dados para o formato do GLPI.
- Criação/atualização de tickets no GLPI.
- Filtro de tickets com status 'Encerrado' ou 'Encerrado - Omitido'.
- Extração de informações (email, telefone, ramal) da descrição do ticket.
- Verificação se ticket já não existe no GLPI com base no RITM ou INC
- Remove databaseModel antigo e substitui por ticketSnModel
- Comenta trecho que gerava .json para verificação da API
- Estrutura melhor o model para coletar todos os dados da request