Buchungskalender: Verdrahtung, Router-Gerüste und API-Vertrag
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1d2ca2791d
commit
a68baf10d9
37 files changed
+888
-30
No files matched your search
@@ -0,0 +1,45 @@
|
||||
# Buchungskalender: API-Vertrag
|
||||
|
||||
Verbindlich für Strang 2 (Widget und Buchungsseite, bauen gegen die öffentliche Schnittstelle) und Strang 3 (Portal, baut gegen die Kunden-API). Task 6 bis 8 erfüllen ihn. Fehlerform überall `{ fehler: code, felder?: {feld: text} }`.
|
||||
|
||||
## Öffentlich (`/api/public/unterkunft/v1`)
|
||||
|
||||
- `GET /:siteKey` → `{ aktiv:true, anbieter:{ name, ort, datenschutzUrl }, akzentfarbe, formToken, unterkuenfte:[{ id, name, maxPersonen, mindestNaechte, checkIn, checkOut }] }` oder `{ aktiv:false }`.
|
||||
- `GET /:siteKey/belegung?unterkunft=<id>&von=YYYY-MM-DD&bis=YYYY-MM-DD` → `{ belegt:[{von,bis}], heute:'YYYY-MM-DD', bisMax:'YYYY-MM-DD' }` (Quellen nicht offengelegt).
|
||||
- `POST /:siteKey/anfrage` Body `{ unterkunft, von, bis, personen, name, firma, email, telefon, nachricht, formToken, kontakt_url }` → `201 { nummer }`.
|
||||
- `GET /:siteKey/buchung/:id?t=` → `{ status, nummer, unterkunft:{name,checkIn,checkOut}, von, bis, naechte, personen, posten, summen, steuerart, fristAt, stornobedingungen, anbieter:{firma,inhaber,strasse,plz,ort,email,telefon}, gast:{name,firma}, rechnungsadresse?, zahlarten:['vorort'|'online'], zahlart?, bezahlt:boolean, rechnungNummer? }`.
|
||||
- `POST /:siteKey/buchung/:id?t=` Body `{ rechnungsadresse:{name,firma,strasse,plz,ort,land}, zahlart }` → `{ status:'gebucht', rechnungNummer, zahlungUrl? }` (bei `online` direkt Checkout-URL).
|
||||
- `POST /:siteKey/buchung/:id/zahlung?t=` → `{ url }`.
|
||||
- `GET /:siteKey/buchung/:id/rechnung.pdf?t=&art=rechnung|storno` → PDF.
|
||||
|
||||
## Kunde (`/api/unterkunft`, Session, `?projectId=`)
|
||||
|
||||
- `GET /status`
|
||||
- `GET|PUT /einstellungen`
|
||||
- `GET /unterkuenfte`
|
||||
- `POST /unterkuenfte`
|
||||
- `PUT|DELETE /unterkuenfte/:id`
|
||||
- `GET|PUT /unterkuenfte/:id/preise`
|
||||
- `GET /unterkuenfte/:id/kalender?von&bis` → `{ bereiche:[{von,bis,quelle,anfrageNummer?,sperreId?,notiz?}] }`
|
||||
- `POST /unterkuenfte/:id/sperren`
|
||||
- `DELETE /sperren/:id`
|
||||
- `POST /unterkuenfte/:id/ical-importe`
|
||||
- `DELETE /unterkuenfte/:id/ical-importe/:importId`
|
||||
- `POST /unterkuenfte/:id/ical-export/erneuern`
|
||||
- `GET /anfragen?filter=offen|gebucht|alle`
|
||||
- `GET /anfragen/:id` (inkl. `vorschlag` = `berechnePreis`)
|
||||
- `POST /anfragen/:id/freigeben` `{posten,fristTage,nachricht}`
|
||||
- `POST /anfragen/:id/ablehnen` `{text}`
|
||||
- `POST /anfragen/:id/bezahlt`
|
||||
- `POST /anfragen/:id/stornieren` `{grund, erstattungCent}`
|
||||
- `POST /preisvorschau` `{unterkunftId,von,bis,personen}`
|
||||
- `GET /rechnungen`
|
||||
- `GET /rechnungen/:id.pdf` (nur Einzel-PDF, kein ZIP — Spec N7)
|
||||
- `POST /stripe/verbinden`, `POST /stripe/vorhandenes-konto`, `POST /stripe/aktualisieren`
|
||||
- `POST /anfrage-funktion` `{art,einheiten,portale,nachricht}`
|
||||
- `POST /anfrage-funktion/zurueckziehen`
|
||||
|
||||
## Team (`/api/team/unterkunft`)
|
||||
|
||||
- `GET /:customerId`
|
||||
- `POST /:customerId/anfrage` `{projectId, entscheidung, begruendung}`
|
||||
Reference in new issue
Block a user