Einstellungen
Base path: /api/settings
GET /settings
Alle Einstellungen abrufen.
Auth: Admin
Response: Einzelnes settings-Objekt (id=1). Sensible Felder (smtp_pass, sumup_api_key, mollie_api_key, stripe_secret_key) werden als "********" zurückgegeben.
PUT /settings
Einstellungen aktualisieren. Nur Felder im Request-Body werden aktualisiert.
Auth: Admin
Wenn purchase_orders_enabled auf 0 gesetzt wird, wird internal_consumption_enabled automatisch ebenfalls auf 0 gesetzt. internal_consumption_enabled auf 1 zu setzen, während purchase_orders_enabled 0 ist, gibt einen 400-Fehler zurück.
POST /settings/upload-logo
Salon-Logo hochladen.
Auth: Admin
Content-Type: multipart/form-data — Feld logo, max 5MB.
POST /settings/test-email
Test-E-Mail zur Überprüfung der SMTP-Konfiguration senden.
Auth: Admin
Request body: { "to": "test@example.com" }
Standorte
Standorte werden über eine separate Route unter /api/locations verwaltet (nicht unter /api/settings).
GET/POST/PUT/DELETE unter /api/locations und /api/locations/:id — erfordern auth() bzw. auth('admin').
Feiertage
GET /settings/holidays / POST / DELETE /:id
Feiertage verwalten (Buchungen an Feiertagen werden abgelehnt).
Öffnungszeiten
Öffnungszeiten werden beim initialen Setup (POST /api/auth/setup) konfiguriert und in der opening_hours-Tabelle gespeichert. Es gibt kein separates REST-Endpoint zur Änderung nach dem Setup.
Mehrwertsteuersätze
GET /settings/vat-rates / POST / PUT /:id / DELETE /:id
MwSt.-Sätze verwalten. Bei is_default: 1 werden alle anderen Sätze zurückgesetzt.
Feature-Toggles
Allgemein
| Einstellung | Standard | Beschreibung |
|---|---|---|
swipe_actions_enabled | 1 | Wischgesten (mobil) |
haptic_feedback_enabled | 1 | Haptisches Feedback (mobil) |
longpress_contact_enabled | 1 | Lang drücken zum Anrufen/Schreiben (mobil) |
offline_mode_enabled | 1 | Offline-Caching für die mobile App |
staff_personal_agenda_enabled | 1 | Mitarbeiter sehen nur eigene Termine |
Lager & Einkauf
| Einstellung | Standard | Beschreibung |
|---|---|---|
purchase_orders_enabled | 1 | Bestellungen und Lieferanten. Bei false wird quantity_on_hand direkt bearbeitbar |
internal_consumption_enabled | 1 | Interner Verbrauch. Erfordert purchase_orders_enabled = true |
Dashboard & Analysen
| Einstellung | Standard | Beschreibung |
|---|---|---|
daily_revenue_goal_enabled | 0 | Tägliches Umsatzziel im Dashboard |
daily_revenue_goal | 0 | Zielwert für den Tagesumsatz |
revenue_forecast_enabled | 0 | Umsatzprognose-Widget |
visit_frequency_alerts_enabled | 0 | Warnung bei seltenen Kundenbesuchen |
visit_frequency_days | 42 | Schwellenwert in Tagen |
CRM & Marketing
| Einstellung | Standard | Beschreibung |
|---|---|---|
followup_sequences_enabled | 0 | Automatische Follow-up-E-Mail-Sequenzen |
product_recommendations_enabled | 0 | Produktempfehlungen für Kunden |
giftcard_qr_enabled | 0 | QR-Codes auf Gutschein-E-Mails |
seasonal_promotions_enabled | 0 | Saisonale Aktionen automatisieren |
bulk_campaigns_enabled | 0 | Massen-E-Mail-Kampagnen |
waitlist_position_enabled | 0 | Wartelistenposition für Kunden anzeigen |
Benachrichtigungen
| Einstellung | Standard | Beschreibung |
|---|---|---|
notify_salon_waitlist_join | 1 | Benachrichtigung bei Wartelistenanmeldung |
notify_salon_slot_available | 1 | Benachrichtigung bei verfügbarem Termin |
noshow_email_enabled | 1 | E-Mail bei No-Show-Gebühr |
low_stock_email_enabled | 1 | E-Mail bei niedrigem Lagerbestand |
booking_request_notify_email | 1 | E-Mail an Admin bei neuer Buchungsanfrage (provisional) |
booking_request_notify_push | 1 | Push-Benachrichtigung an Admin bei neuer Buchungsanfrage (provisional) |
No-Show-Gebühren
| Einstellung | Standard | Beschreibung |
|---|---|---|
noshow_enabled | 0 | Automatische No-Show-Gebühren via Stripe |
noshow_fee_type | percentage | percentage oder fixed |
noshow_fee_value | 50 | Prozentsatz (0-100) oder fester Betrag |
noshow_min_amount | 0 | Mindestgebühr |
Treueprogramm-Einstellungen
Das Treueprogramm wird über eine separate Route unter /api/loyalty verwaltet. Das Flag loyalty_enabled befindet sich in der Tabelle loyalty_settings, nicht in der Haupttabelle settings.
GET /loyalty/settings — Treueprogramm-Einstellungen abrufen.
PUT /loyalty/settings — Treueprogramm-Einstellungen aktualisieren. Auth: Admin