-- Tablas para plantillas de presupuestos
CREATE TABLE IF NOT EXISTS presupuesto_plantillas (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(255) NOT NULL,
    usuario_id INT NULL,
    creado_en TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    actualizado_en TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS presupuesto_plantilla_partidas (
    id INT AUTO_INCREMENT PRIMARY KEY,
    plantilla_id INT NOT NULL,
    concepto VARCHAR(255) NOT NULL,
    categoria_id INT NULL,
    importe_previsto DECIMAL(12,2) NOT NULL DEFAULT 0,
    frecuencia ENUM('MENSUAL','ANUAL','OCASIONAL') DEFAULT 'MENSUAL',
    orden INT NOT NULL DEFAULT 0,
    creado_en TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    actualizado_en TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
    CONSTRAINT fk_plantilla_partida FOREIGN KEY (plantilla_id) REFERENCES presupuesto_plantillas(id) ON DELETE CASCADE,
    KEY idx_plantilla (plantilla_id),
    KEY idx_categoria (categoria_id)
);
