import csv
import mysql.connector
from mysql.connector import Error

# Configuration de la connexion à la base de données
DB_CONFIG = {
    "host": "localhost",
    "user": "root",
    "password": "_z7b6CJc",
    "database": "immo_new",
}

def create_connection():
    """Établit la connexion MySQL et la renvoie."""
    try:
        connection = mysql.connector.connect(**DB_CONFIG)
        if connection.is_connected():
            print("Connexion à la base de données réussie.")
            return connection
    except Error as e:
        print(f"Erreur de connexion à MySQL : {e}")
    return None

def import_population_data(connection, csv_file_path):
    """Import les données de population depuis un fichier CSV."""
    if not connection.is_connected():
        print("La connexion à la base de données n'est plus active.")
        return

    try:
        with connection.cursor() as cursor:
            with open(csv_file_path, newline='', encoding='utf-8') as csvfile:
                reader = csv.DictReader(csvfile, delimiter=';')
                for row in reader:
                    insee_code = row['COM']
                    population = int(row['PTOT'])

                    # Mettre à jour la population pour chaque code INSEE
                    cursor.execute("""
                        UPDATE loc_cities
                        SET population = %s
                        WHERE insee_code = %s;
                    """, (population, insee_code))

            connection.commit()
            print("Données de population importées avec succès.")
    except Error as e:
        connection.rollback()
        print(f"Erreur lors de l'import des données de population : {e}")

def main():
    connection = create_connection()
    if not connection:
        return
    try:
        import_population_data(connection, 'population_communes.csv')  # Remplacez par le chemin de votre fichier CSV
    finally:
        connection.close()

if __name__ == "__main__":
    main()
