// // src/scripts/import-users-from-csv.ts
// import { PrismaClient, Roles } from '@prisma/client';
// import * as fs from 'fs';
// import * as path from 'path';

// const prisma = new PrismaClient();

// // ⚙️ Chemin vers ton CSV (à adapter selon où tu le mets)
// const CSV_PATH = path.resolve(__dirname, 'data/export_employee_table.csv');

// // Type aligné sur les colonnes du CSV
// type CsvUserRow = {
//   email: string;
//   first_name: string;
//   last_name: string;
//   phone_number: string;
// };

// // Petit parseur de ligne CSV sans dépendance
// function splitCsvLine(line: string): string[] {
//   const result: string[] = [];
//   let current = '';
//   let inQuotes = false;

//   for (let i = 0; i < line.length; i++) {
//     const char = line[i];

//     if (char === '"') {
//       // guillemet échappé ""
//       if (inQuotes && line[i + 1] === '"') {
//         current += '"';
//         i++; // on saute le deuxième
//       } else {
//         inQuotes = !inQuotes;
//       }
//     } else if (char === ',' && !inQuotes) {
//       result.push(current);
//       current = '';
//     } else {
//       current += char;
//     }
//   }

//   result.push(current);
//   return result.map((v) => v.trim());
// }

// async function main() {
//   // 1. Lecture du fichier CSV
//   const fileContent = fs.readFileSync(CSV_PATH, 'utf-8');

//   const lines = fileContent
//     .split(/\r?\n/)
//     .map((l) => l.trim())
//     .filter((l) => l.length > 0);

//   if (lines.length <= 1) {
//     console.error('CSV vide ou seulement un header');
//     return;
//   }

//   // 2. Header (noms de colonnes) -> ["email", "first_name", "last_name", "phone_number"]
//   const header = splitCsvLine(lines[0]);
//   const dataLines = lines.slice(1);

//   // 3. Conversion de chaque ligne en objet { email, first_name, last_name, phone_number }
//   const records: CsvUserRow[] = dataLines.map((line) => {
//     const values = splitCsvLine(line);
//     const row: any = {};

//     header.forEach((col, idx) => {
//       row[col] = values[idx] ?? '';
//     });

//     return row as CsvUserRow;
//   });

//   // 4. Mapping vers le format attendu par Prisma (model Users)
//   const data = records.map((row) => ({
//     email: row.email.trim(),
//     first_name: row.first_name.trim(),
//     last_name: row.last_name.trim(),
//     phone_number: row.phone_number.trim(),
//     role: Roles.EMPLOYEE,
//     // residence: null, 
//   }));

//   console.log(`➡️ ${data.length} lignes trouvées dans le CSV`);
//   console.log('Exemple importé :', data[0]);

//   const result = await prisma.users.createMany({
//     data,
//   });

//   console.log(`✅ ${result.count} utilisateurs insérés dans la DB`);
// }

// main()
//   .catch((err) => {
//     console.error('Erreur pendant l’import CSV → DB', err);
//     process.exit(1);
//   })
//   .finally(async () => {
//     await prisma.$disconnect();
//   });
