-- Script SEGURO para corrigir foreign key de document_contracts
-- Este script verifica e corrige passo a passo
-- Execute este script no banco de dados

-- PASSO 1: Verificar estrutura atual
-- Execute: DESCRIBE document_contracts;
-- Execute: SHOW CREATE TABLE document_contracts;

-- PASSO 2: Verificar se template_id permite NULL
-- Se a coluna mostrar "NO" em NULL, precisamos alterá-la primeiro

-- PASSO 3: Alterar coluna para permitir NULL (se necessário)
ALTER TABLE document_contracts 
MODIFY COLUMN template_id INT NULL COMMENT 'ID do modelo usado';

-- PASSO 4: Remover constraint antiga
-- Primeiro, descubra o nome exato da constraint executando:
-- SHOW CREATE TABLE document_contracts;
-- Procure por CONSTRAINT `nome_da_constraint` e use esse nome abaixo

-- Se o nome for document_contracts_ibfk_1:
ALTER TABLE document_contracts 
DROP FOREIGN KEY document_contracts_ibfk_1;

-- PASSO 5: Adicionar nova constraint com ON DELETE SET NULL
ALTER TABLE document_contracts 
ADD CONSTRAINT document_contracts_ibfk_1 
FOREIGN KEY (template_id) REFERENCES document_templates(id) ON DELETE SET NULL;

-- PASSO 6: Verificar se funcionou
DESCRIBE document_contracts;
SHOW CREATE TABLE document_contracts;

