-- ============================================================
-- TABELA DE HORÁRIOS DE AGENDAMENTO PARA INTEGRAÇÕES
-- ============================================================

CREATE TABLE IF NOT EXISTS back.integracao_horarios (
  cdhorario SERIAL PRIMARY KEY,
  cdintegracao INT NOT NULL REFERENCES back.integracao(cdintegracao) ON DELETE CASCADE,
  hora INT NOT NULL CHECK (hora >= 0 AND hora <= 23),
  minuto INT NOT NULL DEFAULT 0 CHECK (minuto >= 0 AND minuto <= 59),
  flativo BOOLEAN DEFAULT true,
  dthcriacao TIMESTAMP DEFAULT NOW(),
  dthmodificacao TIMESTAMP DEFAULT NOW(),
  UNIQUE(cdintegracao, hora, minuto)
);

COMMENT ON TABLE back.integracao_horarios IS 'Horários para sincronização automática de integrações';
COMMENT ON COLUMN back.integracao_horarios.cdhorario IS 'Identificador único do horário';
COMMENT ON COLUMN back.integracao_horarios.cdintegracao IS 'Referência para a integração';
COMMENT ON COLUMN back.integracao_horarios.hora IS 'Hora do dia (0-23)';
COMMENT ON COLUMN back.integracao_horarios.minuto IS 'Minuto da hora (0-59)';
COMMENT ON COLUMN back.integracao_horarios.flativo IS 'Se este horário está ativo';

-- Criar índice para busca rápida
CREATE INDEX IF NOT EXISTS idx_integracao_horarios_ativo ON back.integracao_horarios(cdintegracao, flativo);
CREATE INDEX IF NOT EXISTS idx_integracao_horarios_tempo ON back.integracao_horarios(hora, minuto);
