Merge remote-tracking branch 'origin/main' into Emmanuel

Intègre la chaîne CI/CD et la dockerisation venues de main.

Conflits sur backend/package-lock.json et frontend/package-lock.json :
résolus en régénérant les deux lockfiles depuis les package.json fusionnés,
qui réunissent les dépendances des deux branches (helmet, express-rate-limit,
passport, passport-google-oauth20 côté Emmanuel ; jest-junit côté main).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Emma781227
2026-08-17 00:24:34 +02:00
15 changed files with 920 additions and 64 deletions

View File

@@ -0,0 +1,55 @@
const { execSync } = require("child_process");
const prisma = require("../config/prisma");
async function main() {
let lotCount = await prisma.lot.count();
let ticketCount = await prisma.ticket.count();
console.log(`Lots présents : ${lotCount}`);
console.log(`Tickets présents : ${ticketCount}`);
if (lotCount === 0) {
console.log("Aucun lot trouvé : exécution du seed...");
execSync("npx prisma db seed", {
stdio: "inherit",
env: process.env,
});
lotCount = await prisma.lot.count();
console.log(`Lots présents après seed : ${lotCount}`);
} else {
console.log("Les lots existent déjà : seed ignoré.");
}
if (lotCount !== 5) {
throw new Error(
`Initialisation interrompue : 5 lots attendus, ${lotCount} trouvé(s).`
);
}
ticketCount = await prisma.ticket.count();
if (ticketCount === 0) {
console.log("Aucun ticket trouvé : génération des tickets...");
execSync("npm run generate:tickets", {
stdio: "inherit",
env: process.env,
});
ticketCount = await prisma.ticket.count();
console.log(`Tickets présents après génération : ${ticketCount}`);
} else {
console.log("Les tickets existent déjà : génération ignorée.");
}
console.log("Initialisation de la base terminée.");
}
main()
.catch((error) => {
console.error("Erreur pendant l'initialisation de la base :", error);
process.exitCode = 1;
})
.finally(async () => {
await prisma.$disconnect();
});