Termine
Anzeige
Kalender-Zeitfenster und Standard-Ansicht. Wird pro Browser (localStorage) gespeichert — jeder Nutzer kann seine eigenen Werte setzen.
Standard: Kalender 09:00–21:00 Uhr (Fix-Brief §6), Ansicht abhängig vom Gerät (Mobil = Tag, Desktop = Woche).
Ressourcen
Ressourcen sind die Objekte, die sich Termine „teilen" (Lift 1, Aquapark, BBQ …). Neue Ressourcen erscheinen sofort in Termin-Anlegen/-Bearbeiten. Wird eine Ressource bereits benutzt, wird sie beim Löschen nur deaktiviert.
Neue Ressource
Zugriff
Benannte, widerrufbare Read-only-Links (?t=<token>) für Externe. Optional passwortgeschützt und mit Ablaufdatum. Der Klartext-Token wird nur einmal beim Anlegen angezeigt — hinterher steht in der Liste nur noch der Kurz-Suffix zur Wiedererkennung.
Neuen Link erzeugen
Server-seitige Enforcement ist aktiv: Buchungs-Writes brauchen Rolle „edit" oder höher, Settings-Writes brauchen „admin". Read-Rollen (mit/ohne Details/nur Zeit) redigieren die UI clientseitig, Buchungs-Reads sind aktuell nicht role-gated auf Server-Seite.
Zugriffs-Log
Letzte 200 Aktionen. IP-Adressen werden als Hash gespeichert (grobe Wiedererkennung, DSGVO-freundlich). Neue Einträge landen automatisch beim Öffnen einer Share-Session und bei Schreib-Aktionen.
Termin-Statistik
Feiertage & Ferien
Feiertage und Schulferien sind für uns Betriebstage — an diesen Tagen haben unsere Kunden frei und kommen besonders gerne. Die Liste dient der Planung (Personal, Kapazität), nicht der Betriebsschließung.
Gilt für Berlin (BE) und Brandenburg (BB). Wurde einmalig aus openholidaysapi.org geladen und um Brückentage ergänzt.
Neuer Eintrag
Event-Typen
Event-Typen bestimmen Farbe/Chip auf der Kachel und den Personal-Bedarf. Der Titel-Regex wird beim Sync von externen Buchungen (Kalender/Regiondo) für die automatische Zuordnung verwendet. Aktuell werden die hart-codierten Werte im Aggregator noch benutzt; die Einstellungen hier gelten schon fürs Frontend und werden in einem Folge-Commit auch vom Aggregator gelesen.
Neuer Event-Typ
Cron-Jobs
Geplante Aufgaben in der Datenbank (pg_cron). Schalter aus = Job pausiert, bis du ihn wieder einschaltest. Vorsicht: Sync- und Aggregat-Jobs auszuschalten stoppt still die Datenaktualisierung. Der Orderbird-Live-Sync läuft über GitHub, nicht hier — er taucht in dieser Liste nicht auf.
SMS-Vorlagen
Vorlagen für den SMS-Composer im Termindetail. Platzhalter {name} (Kontakt), {date}, {time} und {sender} (dein Vorname aus dem User-Profil, Fallback „Team") werden beim Absenden befüllt. GSM-7-Zeichen bleiben in einer Segment-Größe (~160 Zeichen); Emojis würden den Preis verdoppeln.
Neue Vorlage
{name} · {date} · {time} · {sender}
Website / Theme
Steuert die öffentliche Website (Farben, Webcam, Popups, Geo-Fencing). Die Website liest diese Werte direkt — Änderungen sind nach dem Speichern beim nächsten Seitenaufruf aktiv.
Farben
Webcam (inkl. URL), Exit-Popup, Newsletter-Popup und weitere Website-Funktionen schaltest du im Tab „Funktionen".
Geo-Fencing
Push senden
Web-Push an alle Abonnenten der öffentlichen Website. Der Versand ist unwiderruflich und kann nicht zurückgeholt werden — deshalb gibt es vor dem Senden eine Bestätigung mit Empfängerzahl.
Zuletzt gesendet
Stempelkarten
Rider-Stempelkarten aus Supabase (customers.stamp_balance, checkin_events).
Prämien-Schwellen: 3, 5, 7, 10 Stempel. Eine eingelöste Prämie wird dauerhaft vermerkt.
Auswertung
Details
Prämien
Du legst hier fest, bei welchem Stempel-Stand es welche Prämie gibt und wie lange sie gilt. Die Schwellen sind frei wählbar — der Katalog bestimmt die Meilensteine der Stempelkarte.
Beim Einlösen wird die Prämie ausgespielt, die zu diesem Zeitpunkt gültig ist. Pro Stand darf nur eine Prämie gleichzeitig gültig sein.
Es gilt immer nur die laufende Karte. Pro Kunde und Stufe kann es nur eine offene Prämie geben — Alt-Karten zählen nicht. Wird eine Karte voll und der Kunde löst nicht ein, wandert die Prämie auf die neue Karte mit, statt zu verfallen.
Einlösbar = offene Prämien, die Kunden gerade vorzeigen könnten (≈ „Kunden auf Stand“).
Neue Prämie
Shop-Bestellungen
Bezahlte Käufe aus dem Website-Shop (Stripe): Gutschein, Aquapark, Wakeboard, SUP, Beachvolleyball, Saison, Rabattkarte. Nicht die Regiondo-Buchungen aus dem Kalender — das sind zwei getrennte Welten.
Website-Statistik
Google Analytics 4 der öffentlichen Website. Rein lesend — der Service-Account-Key liegt serverseitig als Edge-Function-Secret.
Quellen
Seiten
Städte
Geräte
Quick Links
Sprünge in die externen Systeme. Öffnen jeweils in einem neuen Tab.
Produkte
Tickets werden aus Regiondo synchronisiert (Name/Preis/SKU/ID, aktuell). Wertgutscheine liefert die Regiondo-API nicht — die pflegst du hier manuell. Der Status (aktiv/inaktiv) ist ein Flag bei uns; er wird nicht nach Regiondo geschrieben. In Regiondo abgelaufene Tickets werden beim Sync automatisch auf inaktiv gesetzt (Regiondo-Gültigkeit hat Vorrang); gültige Tickets kannst du weiterhin selbst deaktivieren.
Wertgutschein
Widget-UUID
Steht hier eine UUID, öffnet die Website das Buchungs-Overlay auf der eigenen Seite statt in den Regiondo-Shop zu springen — der Kunde bleibt da, und die Verkaufs-Events landen in eurem Google Analytics. Die UUID findest du im Regiondo-Widget-Editor (Shop Configuration → Website Integration → Widget Editor) in der Adresszeile des jeweiligen Produkt-Widgets. Eine ganze URL darfst du auch einfügen — die UUID wird daraus gezogen. Leeren + Speichern schaltet zurück auf den Shop-Link.
Funktionen
Schaltet einzelne Funktionen der öffentlichen Website an/aus. Aus = die Funktion ist auf www.wakeboard-berlin.de nicht sichtbar (ideal, um an ihr zu arbeiten). Lädt die Website die Schalter mal nicht, ist alles an.
Mit den Häkchen Mobil / Tablet / Desktop lässt sich eine Funktion gezielt nur auf bestimmten Geräten ausblenden — etwa der Chat, der auf dem Handy zu viel Platz wegnimmt. Maßgeblich ist die Fensterbreite (unter 768 px mobil, unter 1024 px Tablet), nicht die Gerätekennung; beim Drehen eines Tablets greift es also sofort. Mindestens eine Plattform muss angehakt bleiben — soll die Funktion überall weg, ist der Hauptschalter der richtige Weg. Webcam und die beiden Popups haben keine Plattform-Häkchen, die laufen über einen anderen Mechanismus.
Mit Angemeldet / Nicht angemeldet lässt sich zusätzlich nach Besuchergruppe trennen — etwa Stempelkarte und Trick-Tracker nur für eingeloggte Rider, oder ein Popup nur für Erstbesucher. Beide Einstellungen wirken zusammen: Ausgeblendet wird, sobald eine von beiden zutrifft. Auch hier muss eine Gruppe angehakt bleiben. Kleine Einschränkung: Der Anmeldestatus steht erst fest, wenn die Sitzung geprüft ist — „nur für Angemeldete" erscheint dadurch einen Sekundenbruchteil später.
Mailchimp
Audience, mit der der Kundenstamm abgeglichen wird. Der Sync holt nächtlich den Abmelde-Status und trägt neue Kunden ein. Der API-Key liegt als Supabase-Secret und ist hier bewusst nicht sichtbar.
Probelauf
Liest Mailchimp komplett durch und zeigt, was ein echter Lauf tun würde — schreibt dabei nichts, weder in die Kundendatei noch nach Mailchimp. Dauert etwa eine Minute.
Kunden nach Mailchimp übertragen
Trägt Kunden, die Mailchimp noch nicht kennt, als angemeldet in die Audience ein. Bestehende Kontakte bleiben unangetastet — auch Abgemeldete, die bleiben abgemeldet. Der Abgleich der Abmelde-Status (Pull) passiert hier nicht und bleibt zurückgestellt. Ein Lauf überträgt höchstens 500.
Team
Team-Mitglieder mit oder ohne Auth-Login. Ein Mitglied ohne Login kann per Zugriffs-Link auf das Dashboard zugreifen.