// // 13-expenses-archive.ts // import { PrismaClient, Expenses } from '@prisma/client'; // if (process.env.SKIP_LEAVE_REQUESTS === 'true') { // console.log("⏭ Seed leave-requests ignoré (SKIP_LEAVE_REQUESTS=true)"); // process.exit(0); // } // const prisma = new PrismaClient(); // function daysAgo(n:number) { // const d = new Date(); // d.setUTCDate(d.getUTCDate() - n); // d.setUTCHours(0,0,0,0); // return d; // } // async function main() { // const expenseCodes = await prisma.bankCodes.findMany({ where: { categorie: 'EXPENSE' }, select: { id: true } }); // const timesheets = await prisma.timesheets.findMany({ select: { id: true } }); // // ✅ typer pour éviter never[] // const created: Expenses[] = []; // for (let i = 0; i < 4; i++) { // const ts = timesheets[i % timesheets.length]; // const bc = expenseCodes[i % expenseCodes.length]; // const exp = await prisma.expenses.create({ // data: { // timesheet_id: ts.id, // bank_code_id: bc.id, // date: daysAgo(60 + i), // amount: (20 + i * 3.5).toFixed(2), // ok: Decimal accepte string // attachment: null, // comment: `Old expense #${i + 1}`, // is_approved: true, // supervisor_comment: null, // }, // }); // created.push(exp); // } // for (const e of created) { // await prisma.expensesArchive.create({ // data: { // expense_id: e.id, // timesheet_id: e.timesheet_id, // bank_code_id: e.bank_code_id, // date: e.date, // amount: e.amount, // attachment: e.attachment, // comment: e.comment, // is_approved: e.is_approved, // supervisor_comment: e.supervisor_comment, // }, // }); // } // const total = await prisma.expensesArchive.count(); // console.log(`✓ ExpensesArchive: ${total} total rows (added ${created.length})`); // } // main().finally(() => prisma.$disconnect());