Fonctionnalités : - Configuration par formation (génération auto/manuel, envoi auto/manuel) - Affichage de la liste des apprenants inscrits - Upload de documents PDF par apprenant (mode manuel) - Boutons de prévisualisation et d'envoi manuel - Gestion complète des attestations Corrections : - Ajout des colonnes modeAttestation et modeEnvoi dans la table formations - Ajout des colonnes documentUrl, documentS3Key, uploadedBy, uploadedAt, emailEnvoye, dateEnvoiEmail dans la table attestations - Correction de l'erreur SQL en retirant la colonne urlPdf inexistante de la requête
54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
import { drizzle } from "drizzle-orm/mysql2";
|
|
import { eq, and } from "drizzle-orm";
|
|
import * as schema from "./drizzle/schema.ts";
|
|
|
|
const { apprenants, inscriptions, sequences, attestations } = schema;
|
|
|
|
const db = drizzle(process.env.DATABASE_URL);
|
|
|
|
try {
|
|
const results = await db
|
|
.select({
|
|
apprenant: {
|
|
id: apprenants.id,
|
|
nom: apprenants.nom,
|
|
prenom: apprenants.prenom,
|
|
email: apprenants.email,
|
|
},
|
|
inscription: {
|
|
id: inscriptions.id,
|
|
sequenceId: inscriptions.sequenceId,
|
|
},
|
|
sequence: {
|
|
id: sequences.id,
|
|
nom: sequences.nom,
|
|
},
|
|
attestation: {
|
|
id: attestations.id,
|
|
documentUrl: attestations.documentUrl,
|
|
urlPdf: attestations.urlPdf,
|
|
emailEnvoye: attestations.emailEnvoye,
|
|
dateEnvoiEmail: attestations.dateEnvoiEmail,
|
|
},
|
|
})
|
|
.from(inscriptions)
|
|
.innerJoin(apprenants, eq(inscriptions.apprenantId, apprenants.id))
|
|
.innerJoin(sequences, eq(inscriptions.sequenceId, sequences.id))
|
|
.leftJoin(attestations, eq(attestations.inscriptionId, inscriptions.id))
|
|
.where(
|
|
and(
|
|
eq(sequences.formationId, 1),
|
|
eq(inscriptions.statut, "confirmee")
|
|
)
|
|
)
|
|
.orderBy(apprenants.nom, apprenants.prenom);
|
|
|
|
console.log("Success! Found", results.length, "results");
|
|
console.log(JSON.stringify(results, null, 2));
|
|
} catch (error) {
|
|
console.error("Error:", error.message);
|
|
console.error("Full error:", error);
|
|
}
|
|
|
|
process.exit(0);
|