-- ============================================================
-- VÖLIÁ SYSTEMS - Ampliación de esquema (Fase 6)
-- Ejecutar tras schema.sql y schema_fase5.sql
-- ============================================================
USE volia_systems;

-- ---------- Vacaciones / ausencias ----------
CREATE TABLE vacaciones (
    id INT AUTO_INCREMENT PRIMARY KEY,
    usuario_id INT NOT NULL,
    tipo ENUM('vacaciones','baja_medica','asuntos_propios','otro') DEFAULT 'vacaciones',
    fecha_inicio DATE NOT NULL,
    fecha_fin DATE NOT NULL,
    motivo VARCHAR(255),
    estado ENUM('pendiente','aprobada','rechazada') DEFAULT 'pendiente',
    aprobado_por INT DEFAULT NULL,
    creado_en DATETIME DEFAULT CURRENT_TIMESTAMP,
    resuelto_en DATETIME DEFAULT NULL,
    FOREIGN KEY (usuario_id) REFERENCES usuarios(id),
    FOREIGN KEY (aprobado_por) REFERENCES usuarios(id)
);

-- ---------- Documentos personales (nóminas, contratos...) ----------
-- Reutilizamos la tabla repositorio añadiendo un destinatario individual opcional.
ALTER TABLE repositorio ADD COLUMN usuario_destino INT DEFAULT NULL AFTER departamento_id;
ALTER TABLE repositorio ADD CONSTRAINT fk_repositorio_usuario_destino FOREIGN KEY (usuario_destino) REFERENCES usuarios(id);

-- ---------- Trámites administrativos (Administración y Gestión) ----------
CREATE TABLE tramites (
    id INT AUTO_INCREMENT PRIMARY KEY,
    titulo VARCHAR(200) NOT NULL,
    descripcion TEXT,
    departamento_id INT DEFAULT NULL,
    responsable_id INT DEFAULT NULL,
    estado ENUM('pendiente','en_curso','completado') DEFAULT 'pendiente',
    fecha_limite DATE,
    creado_por INT NOT NULL,
    creado_en DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (departamento_id) REFERENCES departamentos(id),
    FOREIGN KEY (responsable_id) REFERENCES usuarios(id),
    FOREIGN KEY (creado_por) REFERENCES usuarios(id)
);
