My Bookings & Carts
Role-scoped bookings and carts for the logged-in user.
📄️ My Bookings — role-scoped bookings list + summary cards.
My Bookings — role-scoped bookings list + summary cards.
📄️ Export the role-scoped bookings (respecting filters) as CSV.
Export the role-scoped bookings (respecting filters) as CSV.
📄️ Booking Type, Payment Mode and Channel options for the My Bookings filters.
Send a returned value back verbatim as the `bookingType` or `paymentMode` query parameter on GET /api/v1/my/bookings; for channels send the option's `id` as `channel` (`name` is the display label only). All three match on equality. None of the columns is a fixed enum, so the options are the distinct values present in the caller's scoped bookings and every option is guaranteed to return rows.
📄️ Property options for the My Bookings Property filter (only properties in the caller's scope).
Send the returned `id` back as the `property` query parameter on GET /api/v1/my/bookings — it is exact and unambiguous. The `name` is also accepted and matches as a case-insensitive substring, which is what free-text entry uses; two properties sharing a name are one filter outcome under it, so prefer the id.
📄️ Travel-partner options for the My Bookings Travel Partner filter (only accounts in the caller's scope).
Send the returned `name` back as the `travelPartner` query parameter on GET /api/v1/my/bookings. `id` is for display and keying only — the filter matches on name.
📄️ Carts — role-scoped carts list.
A cart with nothing in it carries no property, no dates and no total, so it is left out by default. Send `includeEmpty=true` to list those too.
📄️ Status and Channel options for the Carts filters.
Send a returned value back verbatim as the `status` query parameter on GET /api/v1/my/carts; for channels send the option's `id` as `channel` (`name` is the display label only). Both match on equality. Separate from GET /api/v1/my/bookings/filter-options: a cart has no Booking Type or Payment Mode, and these options are the distinct values present in the caller's scoped CARTS, so every option is guaranteed to return rows.
📄️ Property options for the Carts Property filter (only properties in the caller's scope).
Send the returned `id` back as the `property` query parameter on GET /api/v1/my/carts — it is exact and unambiguous. The `name` is also accepted and matches as a case-insensitive substring, which is what free-text entry uses; two listings sharing a title are one filter outcome under it, so prefer the id.
📄️ Travel-partner options for the Carts Travel Partner filter (only accounts with a cart in the caller's scope).
Send the returned `name` back as the `travelPartner` query parameter on GET /api/v1/my/carts. `id` is for display and keying only — the filter matches on name.