# Archivo: limpiartabla.py

import mysql.connector
from datetime import datetime, timedelta
import sys
from config import DB_SERVER_223, DB_SERVER_220

def conectar_bd(config):
    """Establece y retorna una conexión a la base de datos."""
    try:
        conn = mysql.connector.connect(**config)
        return conn
    except mysql.connector.Error as err:
        print(f"Error al conectar a la base de datos ({config['host']}): {err}")
        sys.exit(1)

def limpiar_reportes_integracion():
    """Elimina registros antiguos de la tabla 'reportes_integracion'."""
    conn = None
    try:
        conn = conectar_bd(DB_SERVER_220)
        cursor = conn.cursor()
        dias_a_borrar = 2
        fecha_corte = datetime.now() - timedelta(days=dias_a_borrar)
        sql = "DELETE FROM gps_reportes.reportes_integracion WHERE reporte_fechagps < %s"
        
        print(f"Borrando registros de 'reportes_integracion' anteriores a: {fecha_corte.strftime('%Y-%m-%d %H:%M:%S')}")
        cursor.execute(sql, (fecha_corte,))
        conn.commit()
        print(f"Tabla 'reportes_integracion' depurada. Filas afectadas: {cursor.rowcount}")

    except Exception as e:
        print(f"Ocurrió un error inesperado al limpiar 'reportes_integracion': {e}")
    finally:
        if conn and conn.is_connected():
            conn.close()

def limpiar_fcm_send():
    """Elimina registros antiguos de la tabla 'fcm_send'."""
    conn = None
    try:
        conn = conectar_bd(DB_SERVER_220)
        cursor = conn.cursor()
        dias_a_borrar = 7
        fecha_corte = datetime.now() - timedelta(days=dias_a_borrar)
        sql = "DELETE FROM gps.fcm_send WHERE fecha_envio < %s"
        
        print(f"Borrando registros de 'fcm_send' anteriores a: {fecha_corte.strftime('%Y-%m-%d %H:%M:%S')}")
        cursor.execute(sql, (fecha_corte,))
        conn.commit()
        print(f"Tabla 'fcm_send' depurada. Filas afectadas: {cursor.rowcount}")

    except Exception as e:
        print(f"Ocurrió un error inesperado al limpiar 'fcm_send': {e}")
    finally:
        if conn and conn.is_connected():
            conn.close()

def limpiar_error_log_sat():
    """Vacía por completo la tabla 'error_log_sat'."""
    conn = None
    try:
        conn = conectar_bd(DB_SERVER_223)
        cursor = conn.cursor()
        sql_truncate = "TRUNCATE TABLE error_log_sat"
        
        print("Vaciando la tabla 'error_log_sat'...")
        cursor.execute(sql_truncate)
        conn.commit()
        print("Tabla 'error_log_sat' depurada ok.")

    except Exception as e:
        print(f"Ocurrió un error inesperado al limpiar 'error_log_sat': {e}")
    finally:
        if conn and conn.is_connected():
            conn.close()

if __name__ == '__main__':
   # limpiar_reportes_integracion()
    limpiar_fcm_send()
    #limpiar_error_log_sat()