import pandas as pd
from sqlalchemy import create_engine

# -------------------------
# Paramètres de connexion PostgreSQL
# -------------------------
DB_URI = "postgresql+psycopg2://root:_z7b6CJc@localhost:5432/immo_new"

# URL du fichier officiel INSEE (COG 2024 - communes)
COG_URL = "https://www.insee.fr/fr/statistiques/fichier/7766585/communes2024-csv.zip"

# -------------------------
# 1. Télécharger et charger le COG officiel
# -------------------------
print("📥 Téléchargement du COG INSEE...")
cog = pd.read_csv(COG_URL, sep=";", dtype=str)

# Garder uniquement les colonnes utiles
cog = cog.rename(columns={
    "COM": "insee_code",
    "LIBELLE": "nom_commune"
})
cog = cog[["insee_code", "nom_commune"]]

print(f"✅ {len(cog)} communes officielles chargées")

# -------------------------
# 2. Connexion à PostgreSQL
# -------------------------
engine = create_engine(DB_URI)

# Charger dans PostgreSQL (remplace si déjà existant)
cog.to_sql("communes_officielles", engine, if_exists="replace", index=False)
print("✅ Table communes_officielles créée dans PostgreSQL")

# -------------------------
# 3. Supprimer les entrées qui ne sont pas des communes officielles
# -------------------------
with engine.begin() as conn:
    conn.execute("""
        DELETE FROM cities
        WHERE insee_code NOT IN (
            SELECT insee_code FROM communes_officielles
        )
    """)
print("🧹 Nettoyage terminé : seuls les communes officielles restent dans 'cities'")
