import sys
import os
from datetime import datetime
import logging
from cnxpdo import get_connection

# Agrega la ruta absoluta al sys.path
sys.path.append('/var/www/html/config')




def insertar_incripcion_nuevo_wp(data: dict):
    conexionBD = None
    cursor = None
    try:
        # Obtener conexión a la base de datos
        conexionBD = get_connection()
        if conexionBD is None:
            return {
                "success": False,
                "message": "Error de conexión a la base de datos"
            }

        cursor = conexionBD.cursor(dictionary=True)

        # Obtener los valores del cuerpo de la petición
        nombre_completo = data.get('nombre_completo', '')
        tipo_documento = data.get('tipo_documento', '')
        documento = data.get('documento', '')
        telefono = data.get('telefono', '')
        nombre_grp_wp_regionales = data.get('nombre_grp_wp_regionales', '')
        url_grp_wp_regionales = data.get('url_grp_wp_regionales', '')
        nombre_grp_wp_tema_interes = data.get('nombre_grp_wp_tema_interes', '')
        url_grp_wp_tema_interes = data.get('url_grp_wp_tema_interes', '')

        # Validaciones: Asegurarse de que los campos obligatorios no estén vacíos
        if not (nombre_completo and tipo_documento and documento and telefono and nombre_grp_wp_regionales and url_grp_wp_regionales and nombre_grp_wp_tema_interes and url_grp_wp_tema_interes):
            return {
                "success": False,
                "message": "Faltan campos obligatorios. Todos los campos deben ser llenados."
            }

        # Validar si ya existe un registro con el mismo documento o teléfono
        query_check = """
            SELECT COUNT(*) FROM inscripciones_whatsapp
            WHERE documento = %s OR telefono = %s
        """
        cursor.execute(query_check, (documento, telefono))
        result = cursor.fetchone()
        if result and result['COUNT(*)'] > 0:
            return {
                "success": False,
                "message": "Ya existe una inscripción con los mismos datos (documento o teléfono)."
            }

        # Insertar los nuevos datos en la tabla inscripciones_whatsapp
        query_insert = """
            INSERT INTO inscripciones_whatsapp (
                nombre_completo,
                tipo_documento,
                documento,
                telefono,
                nombre_grp_wp_regionales,
                url_grp_wp_regionales,
                nombre_grp_wp_tema_interes,
                url_grp_wp_tema_interes,
                fecha_inscripcion
            ) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, NOW())
        """
        values = (
            nombre_completo,
            tipo_documento,
            documento,
            telefono,
            nombre_grp_wp_regionales,
            url_grp_wp_regionales,
            nombre_grp_wp_tema_interes,
            url_grp_wp_tema_interes
        )

        cursor.execute(query_insert, values)
        conexionBD.commit()  # Confirmar la inserción

        return {
            "success": True,
            "message": "Inscripción añadida exitosamente",
            "data": cursor.lastrowid
        }

    except Exception as e:
        logging.error(f"Error al insertar la inscripción de WhatsApp: {e}")
        return {
            "success": False,
            "message": f"Error en la inserción: {str(e)}"
        }

    finally:
        # Cerrar el cursor y la conexión
        if cursor:
            cursor.close()
        if conexionBD:
            conexionBD.close()