import mysql.connector
from mysql.connector import Error

def connect_to_mariadb():
    try:
        connection = mysql.connector.connect(
            host='localhost',
            user='root',
            password='liquido',
            database='iot'
        )

        if connection.is_connected():
            print("Conexion exitosa a la base de datos")

            cursor = connection.cursor()

            #create_user(cursor, "Liquido", "Miller")
            read_all_users(cursor)
            #read_user_by_id(cursor, 1)
            #update_user(cursor, 3, "Pedro", "Gonzalez")
            #delete_user(cursor, 3)

            cursor.close()

    except Error as e:
        print("Error al conectar a la base de datos", e)

    finally:
        if connection.is_connected():
            connection.close()

def create_user(cursor, nombre, apellido):
    try:
        cursor.execute("INSERT INTO usuarios (nombre, apellido) VALUES (%s, %s);", (nombre, apellido))
        cursor.execute("COMMIT;")
        print("Usuario creado correctamente")
    except Error as e:
        print("Error al crear usuario:", e)

def read_all_users(cursor):
    try:
        cursor.execute("SELECT * FROM usuarios;")
        users = cursor.fetchall()
        print("Usuarios encontrados:")
        for user in users:
            print(user)
    except Error as e:
        print("Error al obtener usuarios:", e)

def read_user_by_id(cursor, user_id):
    try:
        cursor.execute("SELECT * FROM usuarios WHERE id = %s;", (user_id,))
        user = cursor.fetchone()
        if user:
            print("Usuario encontrado:", user)
        else:
            print("No se encontro ningun usuario")
    except Error as e:
        print("Error al obtener usuario por ID:", e)

def update_user(cursor, user_id, nombre, apellido):
    try:
        cursor.execute("UPDATE usuarios SET nombre = %s, apellido = %s WHERE id = %s;", (nombre, apellido, user_id))
        cursor.execute("COMMIT;")
        print("Usuario actualizado ")
    except Error as e:
        print("Error al actualizar usuario:", e)

def delete_user(cursor, user_id):
    try:
        cursor.execute("DELETE FROM usuarios WHERE id = %s;", (user_id,))
        cursor.execute("COMMIT;")
        print("Usuario eliminado")
    except Error as e:
        print("Error al eliminar usuario:", e)

connect_to_mariadb()
