Implementar carga de usuarios desde archivo Excel y validación de lista restringida para eventos

This commit is contained in:
miguel
2026-03-08 19:19:30 -06:00
parent 6e82e7fdfd
commit aa2a0f1073
20 changed files with 628 additions and 38 deletions
+11 -2
View File
@@ -1,10 +1,17 @@
const message = {
const messagePorTipoEvento: Record<string, string> = {
'Cultural / Artístico':
'Favor de presentar este código QR (en tu celular o impreso) en la mesa de atención de la Sala Emma Rizo 10 minutos antes de la hora de acceso reservada.',
'Feria / Expo':
'Favor de presentar el código QR en cualquier stand de la feria, para recibir tu constancia de asistencia.',
};
const mensajeDefault =
'Favor de presentar este código QR (en tu celular o impreso) en las mesas de juegos el día del evento, para participar por tu premio.';
export function getMensajeDefaultPorTipoEvento(tipoEvento: string): string {
return messagePorTipoEvento[tipoEvento] ?? mensajeDefault;
}
export function generarHtmlCorreoAsistencia({
nombreForm,
nombreEvento,
@@ -13,6 +20,7 @@ export function generarHtmlCorreoAsistencia({
fechaInicioEvento,
fechaFinEvento,
tipoEvento,
mensajePersonalizado,
}: {
nombreForm: string;
nombreEvento: string;
@@ -21,6 +29,7 @@ export function generarHtmlCorreoAsistencia({
fechaRegistro: string;
fechaInicioEvento?: string;
fechaFinEvento?: string;
mensajePersonalizado?: string;
}) {
const horarioEvento =
fechaInicioEvento && fechaFinEvento
@@ -43,7 +52,7 @@ export function generarHtmlCorreoAsistencia({
</p>
<p style="font-size: 16px; color: #333;">
${message[tipoEvento] ? message[tipoEvento] : 'Favor de presentar este código QR (en tu celular o impreso) en las mesas de juegos el día del evento, para participar por tu premio.'}
${mensajePersonalizado ?? getMensajeDefaultPorTipoEvento(tipoEvento)}
</p>
<div style="text-align: center; margin: 20px 0;">