#!/usr/bin/env python3
import os
import mysql.connector

# Configuration de la base de données
db_config = {
    'host': 'tecodataciknowlg.mysql.db',
    'user': 'tecodataciknowlg',
    'password': 'Tecodata79FRR',
    'database': 'tecodataciknowlg'
}

# Chemin vers le dossier des documents
documents_dir = '/home/hns/appliBDC/documents/'

def get_db_connection():
    return mysql.connector.connect(**db_config)

def get_physical_files():
    files = []
    for filename in os.listdir(documents_dir):
        if os.path.isfile(os.path.join(documents_dir, filename)):
            files.append(filename)
    return files

def update_database(conn):
    cursor = conn.cursor()

    # Récupérer les fichiers physiques
    physical_files = get_physical_files()

    # Mettre à jour les noms de fichiers en base de données
    for filename in physical_files:
        base_name = os.path.splitext(filename)[0]
        # Trouver le document correspondant en base de données
        cursor.execute("SELECT id FROM documents WHERE filename LIKE %s OR file_path LIKE %s",
                       (f"%{base_name}%", f"%{filename}%"))
        documents = cursor.fetchall()

        for document in documents:
            document_id = document[0]
            # Mettre à jour le nom de fichier et le chemin
            update_query = """
                UPDATE documents
                SET filename = %s, file_path = %s
                WHERE id = %s
            """
            cursor.execute(update_query, (filename, os.path.join(documents_dir, filename), document_id))
            print(f"Mise à jour du document {document_id} avec le fichier {filename}")
            conn.commit()

def main():
    conn = get_db_connection()
    update_database(conn)
    conn.close()

if __name__ == "__main__":
    main()
