feat: add CMS inquiries and group bookings

This commit is contained in:
2026-09-17 15:48:40 +02:00
parent 97dd32a2b4
commit a2b3e99174
28 changed files with 1200 additions and 45 deletions
+11
View File
@@ -20,6 +20,17 @@ Zwei bzw. drei Root-Layouts (`(frontend)`, `(payload)`, `(call)`) bedeuten: Next
## Online-Termine & Video-Call
## Kontaktanfragen und CMS-Nachrichten
Kontakt- und Terminanfragen werden unter `/admin/anfragen` als Konversationen
gespeichert. Antworten aus dem CMS werden per SMTP verschickt. Setze dafür
`INBOUND_REPLY_TO` auf die Mailbox, auf die Besucher antworten sollen. Ein
Inbound-Mail-Provider muss eingehende Antworten anschließend als JSON an
`POST /api/email/inbound` weiterleiten und dabei `x-inbound-secret` mit dem
Wert aus `INBOUND_EMAIL_SECRET` senden. Erwartet werden mindestens `from`,
`subject`, `text` und eine eindeutige `messageId`; der Thread-Schlüssel im
Betreff (`[ANOUMA-…]`) ordnet die Antwort der richtigen Anfrage zu.
- Ein Termin wird per Häkchen „Online-Termin“ zu einem Video-Call-Termin. Payload generiert dabei automatisch ein zufälliges Meeting-Passwort (nie aus der Meeting-ID abgeleitet); die Admin kann jederzeit ein neues erzeugen lassen.
- Öffentliche Beitrittsseite: `/termine/[slug]/beitreten` (Name + Passwort, beide Pflicht) → bei Erfolg `/termine/[slug]/call`.
- Ist die aufrufende Person im selben Browser als Admin eingeloggt, wird sie automatisch als **Host** erkannt (kein Passwort nötig, größeres Beitritts-Zeitfenster, exklusive Steuerung: Bildschirmfreigabe, Teilnehmer entfernen).