-- Script SQL para crear/actualizar la tabla documento_medico
-- Ejecutar este script en phpMyAdmin o MySQL

-- PASO 1: Crear la tabla si no existe
CREATE TABLE IF NOT EXISTS `documento_medico` (
    `iddocumento` INT AUTO_INCREMENT PRIMARY KEY,
    `idatencion` INT NULL DEFAULT NULL COMMENT 'ID de atención médica (puede ser NULL si es certificado independiente)',
    `idpersona` INT NOT NULL COMMENT 'ID del paciente (requerido siempre)',
    `tipo` VARCHAR(50) NOT NULL COMMENT 'MEDICO, REPOSO, PERSONALIZADO',
    `contenido` TEXT COMMENT 'JSON con los detalles del certificado',
    `fecha_emision` DATETIME DEFAULT CURRENT_TIMESTAMP,
    `firmado` TINYINT(1) DEFAULT 0,
    `ruta_pdf` VARCHAR(255) COMMENT 'Ruta del PDF sin firmar (temporal)',
    `ruta_pdf_firmado` VARCHAR(255) COMMENT 'Ruta del PDF firmado (final)',
    `fecha_firma` DATETIME NULL DEFAULT NULL COMMENT 'Fecha y hora de la firma',
    `idempleado_firma` INT COMMENT 'Empleado que firmó el documento',
    `idempleado` INT NOT NULL COMMENT 'Empleado que generó el documento',
    `estado` VARCHAR(20) DEFAULT 'borrador' COMMENT 'borrador, firmado',
    INDEX (`idatencion`),
    INDEX (`idpersona`),
    INDEX (`idempleado`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- PASO 2: Si la tabla ya existe pero le faltan campos, agregarlos
-- (Estos comandos solo se ejecutan si la columna no existe)

-- Agregar idpersona si no existe
ALTER TABLE `documento_medico` 
ADD COLUMN IF NOT EXISTS `idpersona` INT NOT NULL AFTER `idatencion`;

-- Agregar ruta_pdf_firmado si no existe
ALTER TABLE `documento_medico` 
ADD COLUMN IF NOT EXISTS `ruta_pdf_firmado` VARCHAR(255) AFTER `ruta_pdf`;

-- Agregar fecha_firma si no existe
ALTER TABLE `documento_medico` 
ADD COLUMN IF NOT EXISTS `fecha_firma` DATETIME NULL DEFAULT NULL AFTER `ruta_pdf_firmado`;

-- Agregar idempleado si no existe
ALTER TABLE `documento_medico` 
ADD COLUMN IF NOT EXISTS `idempleado` INT NOT NULL AFTER `idempleado_firma`;

-- Agregar estado si no existe
ALTER TABLE `documento_medico` 
ADD COLUMN IF NOT EXISTS `estado` VARCHAR(20) DEFAULT 'borrador' AFTER `idempleado`;

-- Modificar idatencion para que permita NULL (certificados independientes)
ALTER TABLE `documento_medico` 
MODIFY COLUMN `idatencion` INT NULL DEFAULT NULL;

-- PASO 3: Crear índices si no existen
CREATE INDEX IF NOT EXISTS `idx_idpersona` ON `documento_medico` (`idpersona`);
CREATE INDEX IF NOT EXISTS `idx_idempleado` ON `documento_medico` (`idempleado`);

-- Listo! La tabla está creada con todos los campos necesarios
SELECT 'Tabla documento_medico creada/actualizada correctamente' AS Resultado;
