Files
mivanchenko 644c99ee30 Booking confirmation email + customer self-service cancel/reschedule (#18)
Sends a confirmation email (best-effort, fire-and-forget SMTP via mailer.py)
on booking creation, with a manage-booking link embedding the ticket-2 signed
token. Adds /manage/<token>, a stateless cancel/reschedule page that reuses
the existing slot-picker against booking_api's create/cancel/reschedule API,
distinguishing an invalid/expired link from an already-cancelled one. Sender
address uses the client's own domain when configured, falling back to a
mivanchenko.de address otherwise.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 15:40:45 +02:00

26 lines
808 B
HTML

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<title>Terminbestätigung</title>
</head>
<body style="margin:0; padding:20px; font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; color:#16302f;">
<h1 style="font-size:1.2rem; margin:0 0 14px;">{{ business_name }}</h1>
<p>Hallo {{ customer_name }},</p>
{% if status == 'pending' %}
<p>Ihre Buchung wartet noch auf Bestätigung:</p>
{% else %}
<p>Ihre Buchung ist bestätigt:</p>
{% endif %}
<ul>
<li>Leistung: {{ service }}</li>
<li>Termin: {{ start_local.strftime('%d.%m.%Y, %H:%M') }} Uhr</li>
</ul>
<p>
Über den folgenden Link können Sie Ihren Termin jederzeit einsehen, verschieben oder
stornieren:
</p>
<p><a href="{{ manage_url }}">{{ manage_url }}</a></p>
</body>
</html>