feat(F-152): completed feature

This commit is contained in:
chattie
2026-08-22 07:09:03 +02:00
parent 2e9ddf4476
commit b008df4f37
25 changed files with 782 additions and 111 deletions

View File

@@ -18,7 +18,7 @@ export interface NotificationsRoutesDeps {
const dispatchSchema = z
.object({
eventId: z.string().min(1).max(120),
template: z.enum(['order_confirmation', 'payment_failed', 'order_shipped']),
template: z.enum(['order_confirmation', 'payment_failed', 'order_shipped', 'account_created']),
recipient: z.string().email(),
subject: z.string().min(1).max(200),
body: z.string().min(1).max(5000),

View File

@@ -1,4 +1,5 @@
export type EmailTemplate = 'order_confirmation' | 'payment_failed' | 'order_shipped';
export type EmailTemplate =
'order_confirmation' | 'payment_failed' | 'order_shipped' | 'account_created';
export interface EmailMessage {
eventId: string;

View File

@@ -2,12 +2,15 @@ import type { EmailMessage, EmailTemplate } from '../domain/notification.js';
import type { EmailProvider } from '../domain/ports.js';
const SUBJECTS: Record<EmailTemplate, string> = {
account_created: '¡Bienvenido a Mercado de Vida!',
order_confirmation: 'Tu pedido ha sido confirmado',
payment_failed: 'Hubo un problema con tu pago',
order_shipped: 'Tu pedido ha sido enviado',
};
const BODIES: Record<EmailTemplate, string> = {
account_created:
'Tu cuenta en Mercado de Vida se ha creado. Ya puedes iniciar sesión y empezar a comprar.',
order_confirmation: 'Hemos recibido tu pago y estamos preparando tu pedido.',
payment_failed: 'No pudimos procesar tu pago. Por favor, intenta de nuevo.',
order_shipped: 'Tu pedido está en camino. Recibirás los datos de seguimiento pronto.',