-- Script para criar tabelas de modelos de contrato
-- Execute este script no phpMyAdmin

-- Tabela document_templates (modelos de contrato)
CREATE TABLE IF NOT EXISTS document_templates (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(255) NOT NULL COMMENT 'Nome do modelo (ex: Contrato de Parceria)',
    tipo VARCHAR(100) NOT NULL COMMENT 'Tipo do documento (parceria, tce, aditivo, rescisao)',
    conteudo TEXT NOT NULL COMMENT 'Conteúdo do modelo com tags @@campo',
    campos_necessarios TEXT DEFAULT NULL COMMENT 'JSON com lista de campos necessários além dos do cadastro',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_tipo (tipo)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Modelos de documentos com tags para substituição';

-- Tabela document_contracts (contratos gerados)
CREATE TABLE IF NOT EXISTS document_contracts (
    id INT AUTO_INCREMENT PRIMARY KEY,
    template_id INT NOT NULL COMMENT 'ID do modelo usado',
    company_id INT NULL COMMENT 'ID da empresa (se aplicável)',
    student_id INT NULL COMMENT 'ID do aluno (se aplicável)',
    tipo VARCHAR(100) NOT NULL COMMENT 'Tipo do documento',
    conteudo_preenchido TEXT NOT NULL COMMENT 'Conteúdo do documento com valores preenchidos',
    campos_adicionais TEXT DEFAULT NULL COMMENT 'JSON com campos adicionais preenchidos',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (template_id) REFERENCES document_templates(id) ON DELETE RESTRICT,
    FOREIGN KEY (company_id) REFERENCES companies(id) ON DELETE SET NULL,
    FOREIGN KEY (student_id) REFERENCES students(id) ON DELETE SET NULL,
    INDEX idx_template (template_id),
    INDEX idx_company (company_id),
    INDEX idx_student (student_id),
    INDEX idx_tipo (tipo)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Contratos gerados a partir dos modelos';

-- Verifica se as tabelas foram criadas
SHOW TABLES LIKE 'document_%';

