-- ============================================================
-- TABELA DE RELACIONAMENTO: INTEGRAÇÃO X EMPRESA (N:N)
-- ============================================================
-- Permite que uma integração ERP seja vinculada a múltiplas empresas
-- e vice-versa

CREATE TABLE IF NOT EXISTS back.integracao_empresa (
  cdintegracao INT NOT NULL,
  cdempresa INT NOT NULL,
  
  -- Chave primária composta
  PRIMARY KEY (cdintegracao, cdempresa),
  
  -- Foreign keys
  CONSTRAINT fk_integracao FOREIGN KEY (cdintegracao) 
    REFERENCES back.integracao(cdintegracao) 
    ON DELETE CASCADE,
    
  CONSTRAINT fk_empresa FOREIGN KEY (cdempresa) 
    REFERENCES back.empresa(cdempresa) 
    ON DELETE CASCADE
);

-- Índices para performance
CREATE INDEX IF NOT EXISTS idx_integracao_empresa_integracao 
  ON back.integracao_empresa(cdintegracao);

CREATE INDEX IF NOT EXISTS idx_integracao_empresa_empresa 
  ON back.integracao_empresa(cdempresa);

-- Comentários
COMMENT ON TABLE back.integracao_empresa IS 'Relacionamento N:N entre integrações ERP e empresas';
COMMENT ON COLUMN back.integracao_empresa.cdintegracao IS 'Código da integração ERP';
COMMENT ON COLUMN back.integracao_empresa.cdempresa IS 'Código da empresa';
