-- =====================================================
-- TABELA: goldie_ocorrencias
-- Registra ocorrências de pedidos vindas do TMS
-- para geração automática de missões de retorno
-- =====================================================

CREATE TABLE IF NOT EXISTS goldie_ocorrencias (
    id SERIAL PRIMARY KEY,

    -- Identificação do Pedido
    numero_pedido VARCHAR(100),
    pedido_md5 VARCHAR(50),

    -- Romaneio (referência real + textual)
    romaneio_id INTEGER,
    numero_romaneio VARCHAR(100),
    romaneio_md5 VARCHAR(50),

    -- Empresa de origem
    empresa VARCHAR(100),

    -- Ocorrência geral do pedido (se preenchido, todo o pedido assume essa ocorrência)
    ocorrencia_pedido VARCHAR(255),

    -- Tipo de problema e observações
    tipo_problema VARCHAR(255),
    observacao TEXT,

    -- Processamento
    status VARCHAR(30) DEFAULT 'pendente',
    status_ocorrencia VARCHAR(30) DEFAULT 'pendente',
    missao_retorno_id INTEGER,

    -- Block padrão
    data_cadastro TIMESTAMP WITHOUT TIME ZONE DEFAULT NOW(),
    block_filial_id INTEGER,
    block_usuario_id INTEGER,
    usuario_cadastro VARCHAR(255),
    data_atualizacao TIMESTAMP WITHOUT TIME ZONE,
    usuario_atualizacao VARCHAR(255),
    block_data TIMESTAMP WITHOUT TIME ZONE,
    block_quem VARCHAR(255),
    block INTEGER,
    block_empresa_id INTEGER
);

-- Índices
CREATE INDEX IF NOT EXISTS idx_goldie_ocorrencias_status ON goldie_ocorrencias (status);
CREATE INDEX IF NOT EXISTS idx_goldie_ocorrencias_status_oc ON goldie_ocorrencias (status_ocorrencia);
CREATE INDEX IF NOT EXISTS idx_goldie_ocorrencias_pedido ON goldie_ocorrencias (pedido_md5);
CREATE INDEX IF NOT EXISTS idx_goldie_ocorrencias_romaneio ON goldie_ocorrencias (romaneio_id);
