export type ReminderEmailData = {
recipientName: string;
eventTitle: string;
dateLabel: string;
timeLabel: string;
joinUrl: string;
meetingPassword: string;
minutesBefore: number;
};
const colors = {
mauveDark: "#8b616d",
plum: "#66505f",
cream: "#f2e2d6",
creamLight: "#fbf6f1",
};
/** Table-based HTML email (inline styles only) matching the ANOUMA design. */
export function renderReminderEmailHtml(data: ReminderEmailData): string {
const { recipientName, eventTitle, dateLabel, timeLabel, joinUrl, meetingPassword, minutesBefore } = data;
return `
|
ANOUMA
|
|
Hallo ${escapeHtml(recipientName)},
Dein Online-Termin bei ANOUMA beginnt in ${minutesBefore} Minuten.
|
Termin: ${escapeHtml(eventTitle)}
Datum: ${escapeHtml(dateLabel)}
Uhrzeit: ${escapeHtml(timeLabel)} Uhr
|
Meeting-Passwort:
${escapeHtml(meetingPassword)}
Bitte halte dein Passwort bereit. Beim Betreten des Meetings wirst du außerdem nach deinem Namen gefragt.
|
|
Räume für Verbindung — mit dir selbst, miteinander und mit der Natur.
|
|
`;
}
export function renderReminderEmailText(data: ReminderEmailData): string {
const { recipientName, eventTitle, dateLabel, timeLabel, joinUrl, meetingPassword, minutesBefore } = data;
return [
`Hallo ${recipientName},`,
"",
`Dein Online-Termin bei ANOUMA beginnt in ${minutesBefore} Minuten.`,
"",
`Termin: ${eventTitle}`,
`Datum: ${dateLabel}`,
`Uhrzeit: ${timeLabel} Uhr`,
"",
`Meeting betreten: ${joinUrl}`,
`Meeting-Passwort: ${meetingPassword}`,
"",
"Bitte halte dein Passwort bereit. Beim Betreten des Meetings wirst du außerdem nach deinem Namen gefragt.",
].join("\n");
}
function escapeHtml(value: string): string {
return value
.replace(/&/g, "&")
.replace(//g, ">")
.replace(/"/g, """);
}