--- /dev/null
+// =========================================================
+// CONFIGURATION DE LA BASE DE DONNÉES
+// =========================================================
+// crée une connexion réutilisable à MySQL/MariaDB
+// utilise un "pool" de connexions
+// =========================================================
+
+import dotenv from 'dotenv';
+import mysql from 'mysql2/promise';
+import path from 'path';
+import { fileURLToPath } from 'url';
+
+// =========================================================
+// CONFIGURATION DU CHEMIN
+// =========================================================
+// créer le filename avec fileURLToPath
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = path.dirname(__filename);
+
+// =========================================================
+// CHARGEMENT DES VARIABLES D'ENVIRONNEMENT
+// =========================================================
+// charge .env qui contient les credits DB
+// .env doit être à la racine du dossier server/
+dotenv.config({ path: path.resolve(__dirname, '../.env') });
+
+// =========================================================
+// CRÉATION DU POOL DE CONNEXIONS
+// =========================================================
+// Un pool = plusieurs connexions réutilisables
+const db = mysql.createPool({
+ host: process.env.DB_HOST || 'localhost',
+ port: process.env.DB_PORT || 33020,
+ user: process.env.DB_USER,
+ password: process.env.DB_PASS,
+ database: process.env.DB_NAME || 'wallete',
+
+ // Paramètres du pool
+ waitForConnections: true, // Attend si toutes les connexions sont occupées
+ connectionLimit: 10, // Max 10 connexions simultanées
+ queueLimit: 0 // Pas de limite de file d'attente
+});
+
+// =========================================================
+// TEST DE CONNEXION
+// =========================================================
+// Vérifie au démarrage que la DB est accessible
+db.getConnection()
+ .then(connection => {
+ console.log('Connexion à la base de données réussie');
+ connection.release(); // Libère la connexion dans le pool
+ })
+ .catch(err => {
+ console.error('Erreur de connexion à la base de données:', err.message);
+ console.error('Vérifie ton fichier .env !');
+ });
+
+// =========================================================
+// EXPORT
+// =========================================================
+// On exporte le pool pour l'utiliser dans les repositories
+export default db;