Evo IBE → Diary

Entitlement booking flow

A rate returns its available entitlements. Each entitlement then follows one of two persistence paths depending on whether the guest selected it.

01
Evo IBE

Guest selects a rate

The selected hotel rate is used to resolve the available entitlement options.

02
Evo IBE

Get entitlements for rate

Return each entitlement with its booking context: site, IBE booking reference and room pick.

03
Decision

Was the entitlement picked?

Split processing for each entitlement in the returned list.

Picked entitlement
IsEntitlementPicked = true
For each reservation Iterate all reservations attached to this entitlement.
Create in Diary Create one restaurant booking per reservation.
Persist outcome Store booking rows and one entitlement row per room pick.
SiteBookings 1 per reservation
SiteId BookRef ResRef IsPaid
S-101 IBE-8042 RD-501 false
S-101 IBE-8042 RD-502 false
S-101 IBE-8042 RD-503 false
S-101 IBE-8042 RD-504 false
EntitlementBookings 1 per entitlement picking / room
SiteId IbeBookRef IbeRoomPickId Picked
S-101 IBE-8042 1 true
S-101 IBE-8042 2 true
Not picked entitlement
IsEntitlementPicked = false
Send to Diary Pass the entitlement and IBE booking context to Diary.
Skip booking rows Do not create restaurant or SiteBookings records.
Persist outcome Add one not-picked entitlement row per room pick.
EntitlementBookings no SiteBookings rows
SiteId IbeBookRef IbeRoomPickId Picked
S-101 IBE-8042 1 false
S-101 IBE-8042 2 false

Other service · Guest-stay / PMS

Check a room pick

The calling service supplies the entitlement booking key. Diary finds the matching row and returns its picked state.

SiteId S-101
IbeBookRef IBE-8042

Choose a room-pick position and run the lookup.

Evo IBE responsibility Diary processing and persistence Example values shown for clarity

Revised model · rate switching

Entitlement booking flow

Keep the Evo IBE flow, but give each entitlement picking its own identity so Diary can find and remove bookings when the guest changes rate.

01
Evo IBE

Guest selects a rate

The selected hotel rate is used to resolve the available entitlement options.

02
Evo IBE

Get entitlements for rate

Return each entitlement with its booking context: site, IBE booking reference and room pick.

03
Selection

Apply picks per room

Diary persists only the entitlement picks that actually exist.

04
One outcome

Room-level result

Room 1 2 entitlements picked
Room 2 No entitlements picked

Diary change

Give the picking a stable identity

EntitlementBookings Add Id and EntitlementId
EntitlementBookings Remove IsEntitlementPicked
SiteBookings Add optional EntitlementBookingId
EntitlementBookings Room 1 · two picked entitlements
Id SiteId IbeBookRef IbeRoomPickId EntitlementId
EB-1001 S-101 IBE-8042 1 ENT-BREAKFAST
EB-1002 S-101 IBE-8042 1 ENT-DINNER
SiteBookings EntitlementBookingId is nullable
SiteId BookRef ResRef EntitlementBookingId?
S-101 IBE-8042 RD-501 EB-1001
S-101 IBE-8042 RD-502 EB-1001
S-101 IBE-8042 RD-503 EB-1002
S-101 IBE-8042 RD-504 EB-1002

Room 1 has two entitlement records, each with linked site bookings. Room 2 has no entitlement or linked booking records. When the rate changes, Diary follows EntitlementBookingId to remove or cancel Room 1’s bookings before removing its old entitlements.

Other service · Guest-stay / PMS

Compare rate entitlements

Call Evo IBE for the selected room’s rate, compare its entitlements with Diary, then show which records to keep, delete, or pick.

SiteId S-101
IbeBookRef IBE-8042
Select an action to compare Evo IBE with Diary.
Room 1 currently has ENT-BREAKFAST ENT-DINNER
Room 2 currently has none

Rate change

But what if guest switches rate and we need to remove entitlement picks