import pandas as pd
import mysql.connector
from mysql.connector import Error

# 📌 Étape 1 : Lire le fichier Excel
file_path = "/Users/petrusedgar/Documents/projets/autoconso/base de données/xls-csv/templates/stations-03052019-short-adresses-nettoyees.xlsx"
df = pd.read_excel(file_path)

# 📌 Étape 2 : Connexion à la base de données MySQL
try:
    connection = mysql.connector.connect(
        host="localhost",
        port="8889",
        database="vroomly-api",
        user="root",
        password="root"
    )

    if connection.is_connected():
        cursor = connection.cursor()

        # 📌 Étape 3 : Mettre à jour les stations
        for index, row in df.iterrows():
            id_station = row['idStation']
            nom_station = row['nomStation']
            marque = row['marque']
            logo = row['logo']
            adresse = row['adresse']
            code_postal = row['codePostal']
            ville = row['ville']

            # 🔹 Vérifier si la marque existe déjà
            cursor.execute("SELECT id FROM station_brands WHERE name = %s", (marque,))
            brand = cursor.fetchone()

            if brand is None:
                # 🚀 Insérer la nouvelle marque si elle n'existe pas
                cursor.execute("INSERT INTO station_brands (name, logo) VALUES (%s, %s)", (marque, logo))
                connection.commit()
                brand_id = cursor.lastrowid  # Récupérer l'ID de la nouvelle marque
                print(f"✅ Nouvelle marque insérée : {marque} (ID: {brand_id})")
            else:
                brand_id = brand[0]  # Récupérer l'ID de la marque existante

            # 🔹 Vérifier si la station existe déjà
            cursor.execute("SELECT id FROM station WHERE id_station = %s", (id_station,))
            station = cursor.fetchone()

            if station:
                # 🚀 Mise à jour de la station existante
                cursor.execute("""
                    UPDATE station 
                    SET brand_id = %s, name = %s, address = %s, postalcode = %s, city = %s, brand_name = %s, brand_logo = %s
                    WHERE id_station = %s
                """, (brand_id, nom_station, adresse, code_postal, ville, marque, logo, id_station))
                #print(f"🔄 Station mise à jour : {nom_station} (ID Station: {id_station})")
            else:
                print(f"⚠️ Station ID {id_station} non trouvée, mise à jour ignorée.")

        # ✅ Commit après toutes les mises à jour
        connection.commit()
        print("✅ Toutes les mises à jour ont été effectuées avec succès !")

except Error as e:
    print(f"❌ Erreur MySQL : {e}")

finally:
    if connection.is_connected():
        cursor.close()
        connection.close()
        print("🔌 Connexion MySQL fermée.")



