Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
PlaceOS::Model::Booking
Inherits PlaceOS::Model::Timestamps < PlaceOS::Model::Scope < PlaceOS::Model::Associations < PlaceOS::Model::ModelWithAutoKey < Neuroplastic < PgORM::Base < PgORM::Validators < PgORM::Table < PgORM::Persistence < PgORM::Associations < ActiveModel::Callbacks < ActiveModel::Validation < ActiveModel::Model < DB::Mappable < DB::Serializable < YAML::Serializable < JSON::Serializable < Reference < Object
Constants
macro level key => type
Constructors
Deserializes the given JSON in string_or_io into
an instance of self, assuming the JSON consists
of an JSON object with key root, and whose value is
the value to deserialize. Will not deserialise from
fields with mass_assign: false
class User < ActiveModel::Model
attribute name : String
attribute google_id : UUID, mass_assign: false
end
User.from_json(%({"main": {"name": "Jason", "google_id": "f6f70bfb-c882-446d-8758-7ce47db39620"}}), root: "main") # => #<User:0x103131b20 @name="Jason">
Class methods
Returns all attribute keys.
Bookings have the zones in an array.
In case of multiple zones as input, we return all bookings that have any of the input zones in their zones array
Changefeed at row (if id passed) or whole table level.
Returns a ChangeFeed instance which can be used to invoke async callbacks via on or
use blocking Iterator via each method.
modifies the array, injecting the recurrences
Instance methods
NOTE:: not to be used directly, only here for caching
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
all_day getter
all_day setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include all_day in the set of changed attributes, whether it has changed or not.
Generate code to apply default values
approved getter
approved setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
approved_at getter
approved_at setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include approved_at in the set of changed attributes, whether it has changed or not.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include approved in the set of changed attributes, whether it has changed or not.
approver_email getter
approver_email setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include approver_email in the set of changed attributes, whether it has changed or not.
approver_id getter
approver_id setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include approver_id in the set of changed attributes, whether it has changed or not.
approver_name getter
approver_name setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include approver_name in the set of changed attributes, whether it has changed or not.
asset_id getter
asset_id setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include asset_id in the set of changed attributes, whether it has changed or not.
asset_ids getter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include asset_ids in the set of changed attributes, whether it has changed or not.
Assign to multiple attributes.
Assign to multiple attributes via HTTP::Params.
Assign to multiple attributes from a model object
Assign each field from JSON if field exists in JSON and has changed in model
Uses the YAML parser as JSON is valid YAML
Returns a Hash of all attribute values
Returns a NamedTuple of all attribute values.
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
booked_by_email getter
booked_by_email setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
booked_by_email_digest getter
booked_by_email_digest setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include booked_by_email_digest in the set of changed attributes, whether it has changed or not.
Include booked_by_email in the set of changed attributes, whether it has changed or not.
booked_by_id getter
booked_by_id setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include booked_by_id in the set of changed attributes, whether it has changed or not.
booked_by_name getter
booked_by_name setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include booked_by_name in the set of changed attributes, whether it has changed or not.
booked_from getter
booked_from setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
if we want to record the system that performed the bookings (kiosk, mobile, swipe etc)
Include booked_from in the set of changed attributes, whether it has changed or not.
booking_end getter
booking_end setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include booking_end in the set of changed attributes, whether it has changed or not.
booking_start getter
booking_start setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include booking_start in the set of changed attributes, whether it has changed or not.
booking_type getter
Setters
booking_type setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include booking_type in the set of changed attributes, whether it has changed or not.
Check if any attributes have changed.
Returns a Hash with all changed attributes.
Serialize the set of changed attributes to JSON.
Serialize the set of changed attributes to JSON.
Serialize the set of changed attributes to YAML.
Serialize the set of changed attributes to YAML.
checked_in getter
checked_in setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
checked_in_at getter
checked_in_at setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include checked_in_at in the set of changed attributes, whether it has changed or not.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include checked_in in the set of changed attributes, whether it has changed or not.
checked_out_at getter
checked_out_at setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include checked_out_at in the set of changed attributes, whether it has changed or not.
Reset changes for all attributes.
created getter
created setter
created_at getter
created_at setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
created_at's default value
Include created_at in the set of changed attributes, whether it has changed or not.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include created in the set of changed attributes, whether it has changed or not.
deleted getter
deleted setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
deleted_at getter
deleted_at setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include deleted_at in the set of changed attributes, whether it has changed or not.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include deleted in the set of changed attributes, whether it has changed or not.
department getter
department setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include department in the set of changed attributes, whether it has changed or not.
description getter
description setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include description in the set of changed attributes, whether it has changed or not.
email_digest getter
email_digest setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include email_digest in the set of changed attributes, whether it has changed or not.
event_id getter
event_id setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include event_id in the set of changed attributes, whether it has changed or not.
extension_data getter
extension_data setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include extension_data in the set of changed attributes, whether it has changed or not.
Helper function to find the nth day of a month
history getter
history setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include history in the set of changed attributes, whether it has changed or not.
id getter
id setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
id's default value
Include id in the set of changed attributes, whether it has changed or not.
images getter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include images in the set of changed attributes, whether it has changed or not.
induction getter
induction setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include induction in the set of changed attributes, whether it has changed or not.
Accessors for attributes without JSON mapping
instance setter
Accessors for attributes without JSON mapping
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include instance in the set of changed attributes, whether it has changed or not.
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
last_changed getter
last_changed setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include last_changed in the set of changed attributes, whether it has changed or not.
parent_id getter
parent_id setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include parent_id in the set of changed attributes, whether it has changed or not.
permission getter
permission setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include permission in the set of changed attributes, whether it has changed or not.
Returns a Hash of all attributes that can be persisted.
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
process_state getter
process_state setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
used to hold information relating to the state of the booking process
Include process_state in the set of changed attributes, whether it has changed or not.
recurrence_days getter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include recurrence_days in the set of changed attributes, whether it has changed or not.
recurrence_end getter
recurrence_end setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include recurrence_end in the set of changed attributes, whether it has changed or not.
recurrence_interval getter
recurrence_interval setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include recurrence_interval in the set of changed attributes, whether it has changed or not.
recurrence_nth_of_month getter
recurrence_nth_of_month setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include recurrence_nth_of_month in the set of changed attributes, whether it has changed or not.
recurrence_type getter
recurrence_type setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include recurrence_type in the set of changed attributes, whether it has changed or not.
rejected getter
rejected setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
rejected_at getter
rejected_at setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include rejected_at in the set of changed attributes, whether it has changed or not.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include rejected in the set of changed attributes, whether it has changed or not.
Reset each attribute to their previous values and clears all changes.
transient flag (never (de)serialised, so API clients cannot set it): callers that have already performed an explicit clash check -- e.g. the bookings controller, which needs the full clashing list for its 409 response -- set this so save! does not redundantly re-run the (expensive) clash detection.
transient flag (never (de)serialised, so API clients cannot set it): callers that have already performed an explicit clash check -- e.g. the bookings controller, which needs the full clashing list for its 409 response -- set this so save! does not redundantly re-run the (expensive) clash detection.
the clash validation only needs to run when the booked slot itself changes: the time, the asset(s), or -- for a recurring booking -- the recurrence pattern (which adds/removes occupied occurrences). approving, rejecting or checking in an existing booking must not be blocked by a clash it did not introduce.
tenant_id getter
tenant_id setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
tenant_id's default value
Include tenant_id in the set of changed attributes, whether it has changed or not.
timezone getter
timezone setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include timezone in the set of changed attributes, whether it has changed or not.
title getter
title setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include title in the set of changed attributes, whether it has changed or not.
Invites the host to any survey configured to fire on this state.
Public and state-parameterised so a recurrence occurrence can reuse it:
BookingInstance owns its own history, and the surveys that apply are the
ones configured against this booking's zones and host, so it calls this on
the hydrated occurrence (see BookingInstance#update_history).
updated_at getter
updated_at setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
updated_at's default value
Include updated_at in the set of changed attributes, whether it has changed or not.
user_email getter
user_email setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include user_email in the set of changed attributes, whether it has changed or not.
user_id getter
user_id setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include user_id in the set of changed attributes, whether it has changed or not.
user_name getter
user_name setter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include user_name in the set of changed attributes, whether it has changed or not.
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
utm_source setter
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include utm_source in the set of changed attributes, whether it has changed or not.
Validate that all non-nillable fields have values.
zones getter
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include zones in the set of changed attributes, whether it has changed or not.
Macros
Nested types
- PlaceOS::Model::Booking::ChangeFeed(T)
- PlaceOS::Model::Booking::ExpansionDetails
- PlaceOS::Model::Booking::History
- PlaceOS::Model::Booking::Induction
- PlaceOS::Model::Booking::Permission
- PlaceOS::Model::Booking::PrimaryKeyType
- PlaceOS::Model::Booking::Recurrence
- PlaceOS::Model::Booking::RecurrenceDetails
- PlaceOS::Model::Booking::State