import csv
import pymysql

# Configuration de la connexion à la base de données
db_config = {
    'host': 'localhost',
    'user': 'root',
    'password': '_z7b6CJc',  # Remplacez par votre mot de passe
    'database': 'immo_new',
    'charset': 'utf8mb4',
    'cursorclass': pymysql.cursors.DictCursor
}

# Chemin vers votre fichier CSV
csv_file_path = 'osm-france-food-service.csv'  # Remplacez par le chemin réel de votre fichier

# Connexion à la base de données
connection = pymysql.connect(**db_config)

try:
    with connection.cursor() as cursor:
        # Lecture du fichier CSV
        with open(csv_file_path, mode='r', encoding='utf-8-sig') as file:
            csv_reader = csv.DictReader(file, delimiter=';')

            for row in csv_reader:
                # Extraction des données nécessaires
                service_name = row.get('Nom', '')
                category = 'restaurant'
                address = ''  # Adresse non disponible dans l'extrait
                postal_code = row.get('Code Commune', '')
                city = row.get('Commune', '')
                insee_code = row.get('Code Commune', '')
                phone = row.get('Téléphone', '')[:20]  # Tronquer à 20 caractères
                website = row.get('Site Web', '')
                opening_hours = row.get("Heures d'ouverture", '')

                # Coordonnées géographiques
                osm_point = row.get('OSM Point', '')
                latitude = osm_point.split(',')[0].strip() if osm_point else None
                longitude = osm_point.split(',')[1].strip() if osm_point else None

                # Requête SQL pour insérer les données
                sql = """
                INSERT INTO public_services
                (service_name, category, address, postal_code, city, insee_code, phone, website, opening_hours, latitude, longitude)
                VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
                """

                # Exécution de la requête
                cursor.execute(sql, (
                    service_name,
                    category,
                    address,
                    postal_code,
                    city,
                    insee_code,
                    phone,
                    website,
                    opening_hours,
                    latitude,
                    longitude
                ))

    # Validation des modifications
    connection.commit()
    print("Les données ont été insérées avec succès.")

finally:
    # Fermeture de la connexion
    connection.close()