# general_information.py
import sys
import os

# Agrega la ruta absoluta al sys.path
sys.path.append('/var/www/html/config')

from cnxpdo import get_connection

from datetime import datetime
import hashlib

#------------------ GENERAL INFORMATION ------------------

def consultarGenInfo():
    conexionBD = get_connection()
    if conexionBD is None:
        return {"success": 0, "message": "Error de conexión"}

    try:
        cursor = conexionBD.cursor(dictionary=True)
        query = "SELECT * FROM configuraciones"
        cursor.execute(query)
        data = cursor.fetchall()

        if data:
            cursor.close()
            conexionBD.close()
            return {
                "success": 1,
                "message": "Información general encontrada",
                "data": data
            }

        cursor.close()
        conexionBD.close()
        return {"success": 0, "message": "No se encontró información general"}

    except Exception as e:
        conexionBD.close()
        return {"success": 0, "message": f"Error: {str(e)}"}

def actualizarGenInfo(id, data):
    conexionBD = get_connection()
    if conexionBD is None:
        return {"success": 0, "message": "Error de conexión"}

    try:
        # Obtener los datos enviados
        nombre = data['nombre']
        tipo_doc = data['tipo_doc']
        documento = data['documento']
        correo = data['correo']
        telefono = data['telefono']
        direccion = data['direccion']

        # Verificar si los datos realmente han cambiado
        cursor = conexionBD.cursor()
        query_check = "SELECT nombre, tipo_doc, documento, correo, telefono, direccion FROM configuraciones WHERE id = %s"
        cursor.execute(query_check, (id,))
        existing_data = cursor.fetchone()

        if existing_data:
            # Comparar los datos actuales con los nuevos
            if (existing_data[0] == nombre and  # nombre
                existing_data[1] == tipo_doc and  # tipo_doc
                existing_data[2] == documento and  # documento
                existing_data[3] == correo and    # correo
                existing_data[4] == telefono and  # telefono
                existing_data[5] == direccion):   # direccion
                # Si no hay cambios, devolver un mensaje
                cursor.close()
                conexionBD.close()
                return {
                    "success": 1,
                    "message": "No se realizaron cambios, los datos son iguales",
                    "data": data
                }

        # Si hay cambios, realizar la actualización
        query_update = """
            UPDATE configuraciones 
            SET nombre = %s, tipo_doc = %s, documento = %s, correo = %s, telefono = %s, direccion = %s 
            WHERE id = %s
        """
        cursor.execute(query_update, (nombre, tipo_doc, documento, correo, telefono, direccion, id))
        conexionBD.commit()

        # Si la actualización fue exitosa (independientemente de cambios)
        cursor.close()
        conexionBD.close()
        return {
            "success": 1,
            "message": "Información general actualizada",
            "data": data
        }

    except Exception as e:
        conexionBD.close()
        return {"success": 0, "message": f"Error: {str(e)}"}

