hubxglpi/scripts/data/database.sql
Rafael Lopes 2625c45d91 FEAT: Banco de dados
- Adiciona configuração de conexão com o banco de dados PostgreSQL
- Implementa logger para registro de eventos
- Adiciona script usado no banco de dados
2025-10-06 20:11:54 -03:00

57 lines
1.8 KiB
SQL

-- =============================================
-- BANCO DE DADOS: hubglpi
-- DESCRIÇÃO: Sistema de integração entre HubSoft e GLPI
-- OBS: Chamados sempre são abertos pelo HubSoft
-- =============================================
-- =============================================
-- TABELA: hubsoft_tickets
-- DESCRIÇÃO: Armazena os chamados originados do HubSoft
-- =============================================
CREATE TABLE hubsoft_tickets (
id SERIAL PRIMARY KEY,
protocolo VARCHAR(50) UNIQUE NOT NULL,
descricao_abertura TEXT NOT NULL,
descricao_fechamento TEXT,
tipo_atendimento VARCHAR(100),
cliente_codigo INTEGER NOT NULL,
cliente_nome VARCHAR(255) NOT NULL,
servico_id VARCHAR(50),
servico_nome VARCHAR(255),
data_abertura TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
data_fechamento TIMESTAMP,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- =============================================
-- TABELA: sync_data
-- DESCRIÇÃO: Armazena o estado da sincronização entre HubSoft e GLPI
-- =============================================
CREATE TABLE sync_logs (
id SERIAL PRIMARY KEY,
hubsoft_ticket_id INTEGER NOT NULL REFERENCES hubsoft_tickets(id),
glpi_ticket_id INTEGER,
source_last source_last_enum DEFAULT 'hubsoft',
status_sync status_sync_enum DEFAULT 'pending_create',
sync_metadata JSONB,
last_sync_attempt TIMESTAMP,
sync_error_message TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE (hubsoft_ticket_id, glpi_ticket_id)
);
CREATE TYPE source_last_enum AS ENUM ('hubsoft', 'glpi');
CREATE TYPE status_sync_enum AS ENUM (
'pending_create',
'created_glpi',
'pending_close',
'closed_glpi',
'sync_error',
'need_update'
);