@@ -2,45 +2,64 @@ type: object
22description : |
33 A partner booking. Returned by create, amend, cancel, and read.
44
5- Fields present depend on `status`:
6-
7- - `CONFIRMED` → `mainGuest` and full guest details set.
8- - `CANCELLED` → `cancellationReason` set; record persists for partner
9- refund logic.
10- required : [id, status, productId, localDate, localTime]
5+ When `status=CANCELLED`, `cancellationReason` is set and the record persists
6+ for partner refund handling.
7+ required : [id, status, productId, title, date, time, timeZone, createdAt]
118properties :
129 id :
1310 type : string
1411 format : uuid
1512 description : Withlocals booking id.
16- status : { $ref: "./BookingStatus.yaml" }
17- cancellationReason :
18- type : string
19- enum : [guest, host, no_show, admin, other]
20- description : Present when `status=CANCELLED`. Kept separate from the status enum.
21- resellerReference :
13+ partnerReference :
2214 type : string
2315 description : Partner's own booking id (internally `external_id`).
2416 example : " GYG-2026-XYZ-001"
17+
2518 productId : { type: string, format: uuid }
26- localDate : { type: string, format: date, example: "2026-07-15" }
27- localTime :
19+ title :
20+ type : string
21+ description : Denormalized product title at the time of booking.
22+ example : " A Relaxed Morning at Hyakumanben Craft Market"
23+
24+ date : { type: string, format: date, example: "2027-10-15" }
25+ time :
2826 type : string
2927 pattern : " ^[0-2][0-9]:[0-5][0-9]$"
30- example : " 10:00"
31- guests :
32- type : object
33- properties :
34- numberOfAdults : { type: integer, minimum: 1, example: 2 }
35- numberOfChildren : { type: integer, minimum: 0, example: 0 }
36- mainGuest : { $ref: "./Guest.yaml" }
37- otherGuests :
38- type : array
39- items : { $ref: "./Guest.yaml" }
40- netPrice : { $ref: "./Money.yaml" }
41- meetingPoint : { type: string }
42- specialRequest : { type: string }
28+ description : Local clock time at the experience location.
29+ example : " 09:00"
30+ timeZone :
31+ type : string
32+ description : IANA time zone for `date` / `time`.
33+ example : " Asia/Tokyo"
34+
35+ status : { $ref: "./BookingStatus.yaml" }
36+ cancellationReason :
37+ type : string
38+ enum : [guest, host, no_show, admin, other]
39+ description : Present when `status=CANCELLED`.
40+ cancellationDeadline :
41+ type : string
42+ format : date-time
43+ description : Latest moment the booking can be cancelled for a full refund.
44+ example : " 2027-10-08T09:00:00Z"
45+ createdAt :
46+ type : string
47+ format : date-time
48+ description : When the booking was created.
49+ example : " 2026-05-24T17:11:17Z"
50+
51+ meetingPoint : { $ref: "./MeetingPoint.yaml" }
4352 tourLanguage :
4453 type : string
45- description : ISO-639-1 language code (e.g. `en`) .
54+ description : ISO-639-1 language code.
4655 example : " en"
56+ specialRequest :
57+ type : string
58+ description : Free-text note from the guest, forwarded to the host.
59+
60+ host :
61+ type : object
62+ required : [firstName]
63+ description : Minimal host details for day-of identification.
64+ properties :
65+ firstName : { type: string, example: "Ren" }
0 commit comments