import { escapeHtml, paragraph, renderButton, renderEmailShell } from "./layout";
export function newConversationAdminEmail(args: {
name: string;
email: string;
subject: string;
body: string;
adminUrl: string;
threadKey: string;
}): { subject: string; html: string } {
return {
subject: `Neue Anfrage: ${args.subject} [ANOUMA-${args.threadKey}]`,
html: renderEmailShell({
bodyHtml: [
paragraph("Eine neue Anfrage ist eingegangen.", { italic: true }),
`
${escapeHtml(args.name)} · ${escapeHtml(args.email)}
${escapeHtml(args.subject)}
`,
`${escapeHtml(args.body)}
`,
renderButton("Anfrage im CMS öffnen", args.adminUrl),
].join("\n"),
}),
};
}
export function conversationReplyEmail(args: {
name: string;
subject: string;
body: string;
senderName: string;
threadKey: string;
}): { subject: string; html: string } {
return {
subject: `Re: ${args.subject} [ANOUMA-${args.threadKey}]`,
html: renderEmailShell({
bodyHtml: [
paragraph(`Hallo ${args.name},`),
paragraph(`${args.senderName} hat auf deine Anfrage geantwortet.`, { italic: true }),
`${escapeHtml(args.body)}
`,
paragraph("Du kannst einfach auf diese E-Mail antworten. Deine Antwort wird automatisch derselben Anfrage zugeordnet.", { small: true }),
].join("\n"),
}),
};
}
export function groupRegistrationEmail(args: {
name: string;
offerTitle: string;
status: "received" | "admin";
adminUrl?: string;
}): { subject: string; html: string } {
const isAdminMail = args.status === "admin";
return {
subject: isAdminMail ? `Neue Gruppenanmeldung: ${args.offerTitle}` : `Deine Anmeldung bei ANOUMA: ${args.offerTitle}`,
html: renderEmailShell({
bodyHtml: [
paragraph(isAdminMail ? "Eine neue Gruppenanmeldung ist eingegangen." : `Hallo ${args.name},`),
paragraph(isAdminMail ? `${args.name} hat sich für „${args.offerTitle}“ angemeldet.` : `Deine Anmeldung für „${args.offerTitle}“ wurde übermittelt. Anna meldet sich, sobald sie sie geprüft hat.`, { italic: true }),
...(isAdminMail && args.adminUrl ? [renderButton("Anmeldung im CMS öffnen", args.adminUrl)] : []),
].join("\n"),
}),
};
}