import mysql.connector

# Configuration de la connexion à la base de données
db_config = {
    'host': 'localhost',
    'user': 'root',
    'password': '',
    'database': 'gestion_mei_1'
}

# Script SQL pour créer la table utilisateurs
create_table_query = """
CREATE TABLE IF NOT EXISTS `utilisateurs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) COLLATE utf8_bin NOT NULL,
  `password` varchar(255) COLLATE utf8_bin NOT NULL,
  `nom` varchar(100) COLLATE utf8_bin NOT NULL,
  `prenom` varchar(100) COLLATE utf8_bin NOT NULL,
  `email` varchar(100) COLLATE utf8_bin DEFAULT NULL,
  `role` varchar(20) COLLATE utf8_bin NOT NULL DEFAULT 'user',
  `date_creation` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
"""

# Script SQL pour insérer des utilisateurs par défaut
insert_users_query = """
INSERT INTO `utilisateurs` (`username`, `password`, `nom`, `prenom`, `email`, `role`) 
VALUES 
('admin', 'admin123', 'Administrateur', 'GMAO', 'admin@biogalenic.com', 'admin'),
('technicien', 'tech123', 'Technicien', 'Maintenance', 'tech@biogalenic.com', 'technicien'),
('operateur', 'op123', 'Operateur', 'Production', 'op@biogalenic.com', 'operateur');
"""

try:
    # Établir la connexion à la base de données
    connection = mysql.connector.connect(**db_config)
    cursor = connection.cursor()
    
    # Créer la table utilisateurs
    print("Création de la table utilisateurs...")
    cursor.execute(create_table_query)
    
    # Vérifier si des utilisateurs existent déjà
    cursor.execute("SELECT COUNT(*) FROM utilisateurs")
    user_count = cursor.fetchone()[0]
    
    # Insérer des utilisateurs par défaut seulement s'il n'y en a pas déjà
    if user_count == 0:
        print("Insertion des utilisateurs par défaut...")
        cursor.execute(insert_users_query)
        print(f"{cursor.rowcount} utilisateurs ajoutés avec succès.")
    else:
        print(f"{user_count} utilisateurs déjà présents dans la base de données.")
    
    # Valider les modifications
    connection.commit()
    print("Opération terminée avec succès!")

except mysql.connector.Error as error:
    print(f"Erreur lors de la connexion à MySQL: {error}")

finally:
    # Fermer la connexion
    if 'connection' in locals() and connection.is_connected():
        cursor.close()
        connection.close()
        print("Connexion MySQL fermée.")
