Skip to content

What-if Define checklist template (rollup delta)

POST
/v1/actions/hospitality.action.define_checklist_template/whatif
curl --request POST \
--url https://api.aerandil.com/v1/actions/hospitality.action.define_checklist_template/whatif \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "branch": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "params": { "area_kind": "lobby", "brand_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "items": [ { "code": "example", "kind": "check", "label": "example" } ], "name": "example", "property_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "required": true, "room_type_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "task_type": "stayover" }, "return_modified": false }'

What-if projection of apply_hospitality_action_define_checklist_template — previews the action (execute-and-roll-back) and folds its would-be events into rollup deltas, returning the contribution an apply would make to the daily_rooms fact (ADR / RevPAR / TRevPAR / Occupancy inputs) without persisting anything. Requires the same actions:hospitality.action.define_checklist_template:apply scope as apply. An action that emits no rooms-fact events yields an empty daily_rooms.

Media typeapplication/json
object
branch

Apply against an open branch’s overlay view instead of the canonical (main) plane. The action’s writes land in the branch’s copy-on-first-write overlay, its events in the branch’s own stream, and the invocation is journaled for merge-by-replay. Branch writes are action-only, so this is the write-side entry point to a branch (POST /v1/branches forks one).

string format: uuid
params
required
object
area_kind
The one kind of public area the list is for — a public-area task type only, never with room_type_id (absent: every area)
string
Allowed values: lobby corridor lift stairwell pool gym spa_area restaurant_floor toilets back_of_house exterior other
brand_id
Brand scope (exactly one of brand_id / property_id)
string format: uuid
items
required
Checklist items
Array<object>
object
code
required
string
kind
required
string
Allowed values: check photo count text
label
required
string
name
required
What the list is called on the handset
string
property_id
Property scope (exactly one of brand_id / property_id)
string format: uuid
required
Refuse task completion until a result is recorded (default false)
boolean
room_type_id
The one room type the list is for (absent: every room)
string format: uuid
task_type
required
The housekeeping task type the list is for
string
Allowed values: stayover departure vacant_pickup deep_clean turndown inspection public_area_clean public_area_inspection minibar laundry
return_modified

When true, the response carries modified_objects and modified_links projections — the engine reads the event log inside the same transaction so the projection observes the handler’s own writes.

boolean

Rollup deltas the action would contribute, computed and rolled back.

Media typeapplication/json
object
daily_rooms
required

Per (property, business_date) additive contribution to the rooms rollup.

Array<object>
object
business_date
required
string format: date
currency

ISO 4217, when the fold observed one.

string
property_id
required
string format: uuid
rooms_revenue_net_delta
required

Decimal, net rooms revenue delta.

string
rooms_sold_delta
required
integer format: int64
total_revenue_net_delta
required

Decimal, net total revenue delta.

string
Examplegenerated
{
"daily_rooms": [
{
"business_date": "2026-04-15",
"currency": "example",
"property_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"rooms_revenue_net_delta": "example",
"rooms_sold_delta": 1,
"total_revenue_net_delta": "example"
}
]
}
Cache-Control
string
Allowed value: no-store

Always no-store — derived, uncommitted data.

Validation error — the apply would be rejected.