# -*- coding: utf-8 -*-
import paho.mqtt.client as mqtt
import mysql.connector
from mysql.connector import Error

def insert_perfume(nombre, marca, fragancia, size, precio):
    try:
        connection = mysql.connector.connect(
            host='localhost',
            user='root',
            password='liquido',
            database='perfumeria'
        )

        if connection.is_connected():
            cursor = connection.cursor()
            sql_query = "INSERT INTO perfumes (nombre, marca, fragancia, size, precio) VALUES (%s, %s, %s, %s, %s);"
            cursor.execute(sql_query, (nombre, marca, fragancia, size, precio))
            connection.commit()
            cursor.close()
            print(f"Perfume registrado correctamente: {nombre}, {marca}, {fragancia}, {size}, {precio}")

    except Error as e:
        print("Error al conectar o insertar en la base de datos:", e)

    finally:
        if connection.is_connected():
            connection.close()

def on_message(mosq, obj, msg):
    print(msg.topic + " " + str(msg.qos) + " " + str(msg.payload))
    message = msg.payload.decode('utf-8').strip()
    parts = message.split(",")
    if len(parts) == 5:
        nombre, marca, fragancia, size_str, precio_str = parts
        try:
            size = int(size_str)
            precio = float(precio_str)
            insert_perfume(nombre.strip(), marca.strip(), fragancia.strip(), size, precio)
        except ValueError as e:
            print("Error al convertir tamaño o precio:", e)
    else:
        print("Formato de mensaje incorrecto:", message)

username = ""
password = "" 

mqttc = mqtt.Client()
mqttc.username_pw_set(username, password)
mqttc.on_message = on_message
mqttc.connect("149.130.166.88", 1883, 60)
mqttc.subscribe("#", 0)

mqttc.loop_forever()
