-- Crear base de datos
CREATE DATABASE IF NOT EXISTS doc_management CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE doc_management;

-- Tabla PRO_PROCESO
CREATE TABLE IF NOT EXISTS PRO_PROCESO (
    PRO_ID INT AUTO_INCREMENT PRIMARY KEY,
    PRO_NOMBRE VARCHAR(60) NOT NULL,
    PRO_PREFIJO VARCHAR(20) NOT NULL UNIQUE,
    INDEX idx_prefijo (PRO_PREFIJO)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Tabla TIP_TIPO_DOC
CREATE TABLE IF NOT EXISTS TIP_TIPO_DOC (
    TIP_ID INT AUTO_INCREMENT PRIMARY KEY,
    TIP_NOMBRE VARCHAR(60) NOT NULL,
    TIP_PREFIJO VARCHAR(20) NOT NULL UNIQUE,
    INDEX idx_prefijo (TIP_PREFIJO)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Tabla DOC_DOCUMENTO
CREATE TABLE IF NOT EXISTS DOC_DOCUMENTO (
    DOC_ID INT AUTO_INCREMENT PRIMARY KEY,
    DOC_NOMBRE VARCHAR(60) NOT NULL,
    DOC_CODIGO INT NOT NULL,
    DOC_CONTENIDO VARCHAR(4000),
    DOC_ID_TIPO INT NOT NULL,
    DOC_ID_PROCESO INT NOT NULL,
    CONSTRAINT fk_doc_tipo FOREIGN KEY (DOC_ID_TIPO) REFERENCES TIP_TIPO_DOC(TIP_ID) ON DELETE RESTRICT,
    CONSTRAINT fk_doc_proceso FOREIGN KEY (DOC_ID_PROCESO) REFERENCES PRO_PROCESO(PRO_ID) ON DELETE RESTRICT,
    INDEX DOC_PROCESO_idx (DOC_ID_PROCESO),
    INDEX DOC_TIPO_idx (DOC_ID_TIPO),
    UNIQUE KEY uk_codigo_tipo_proceso (DOC_CODIGO, DOC_ID_TIPO, DOC_ID_PROCESO)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;