<?php
/**
 * ZLETS - Modelo Mantenimiento
 * Maneja las operaciones de limpieza de base de datos
 */

class Mantenimiento
{
    private $db;

    public function __construct()
    {
        $this->db = Conexion::getConexion();
    }

    /**
     * Limpia las tablas de letras y grupos_letras, reiniciando sus IDs (TRUNCATE)
     * pero mantiene intacta la tabla empresas.
     */
    public function limpiarBD()
    {
        try {
            // Desactivar temporalmente validación de llaves foráneas para poder hacer TRUNCATE
            $this->db->exec('SET FOREIGN_KEY_CHECKS = 0');

            // Vaciar tablas y reiniciar autoincrement (Nota: TRUNCATE causa commit implícito en MySQL)
            $this->db->exec('TRUNCATE TABLE letras');
            $this->db->exec('TRUNCATE TABLE grupos_letras');

            // Reactivar llaves foráneas
            $this->db->exec('SET FOREIGN_KEY_CHECKS = 1');

            return true;
        } catch (PDOException $e) {
            // Restaurar llaves foráneas en caso de error
            $this->db->exec('SET FOREIGN_KEY_CHECKS = 1');
            error_log("Error al limpiar BD: " . $e->getMessage());
            return false;
        }
    }
}
