Files
HoruxDespachosNuevo/apps/api/src/services/email/templates/welcome.ts
Horux Dev 8f796b2403 fix(api): evitar 500 al crear tenant con email existente + rate-limit trust proxy
- createTenant ahora reusa User si el email ya existe globalmente
  (hace upsert de membership en vez de crear user duplicado)
- Arregla error de express-rate-limit con X-Forwarded-For:
  app.set('trust proxy', 1) para que funcione detrás de Cloudflare
- Tipos de email templates actualizados para tempPassword nullable
2026-05-19 21:42:57 +00:00

18 lines
1.1 KiB
TypeScript

import { baseTemplate, heading, primaryButton, infoBox, BRAND_COLORS as C } from './base.js';
export function welcomeEmail(data: { nombre: string; email: string; tempPassword: string | null | undefined }): string {
return baseTemplate(`
${heading('Bienvenido a Horux 360')}
<p style="color:${C.textPrimary};margin:0 0 16px;">Hola <strong>${data.nombre}</strong>,</p>
<p style="color:${C.textPrimary};margin:0 0 20px;">Tu cuenta ha sido creada exitosamente. Estas son tus credenciales de acceso:</p>
${infoBox(`
<p style="margin:0;color:${C.textMuted};font-size:13px;">Email</p>
<p style="margin:2px 0 12px;color:${C.textPrimary};font-weight:600;font-family:monospace;">${data.email}</p>
<p style="margin:0;color:${C.textMuted};font-size:13px;">Contraseña temporal</p>
<p style="margin:2px 0 0;color:${C.textPrimary};font-weight:600;font-family:monospace;">${data.tempPassword}</p>
`)}
<p style="color:${C.textMuted};margin:0 0 24px;font-size:14px;">Por seguridad, te recomendamos cambiar tu contraseña la primera vez que inicies sesión.</p>
${primaryButton('Iniciar sesión', 'https://horuxfin.com/login')}
`);
}