Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
class
PlaceOS::Model::BookingInstance
- PlaceOS::Model::BookingInstance
- PlaceOS::Model::ModelWithAutoKey
- PgORM::Base
- ActiveModel::Model
- Reference
- Object
Included Modules
- PlaceOS::Model::Associations
- PlaceOS::Model::History::Tracked
- PlaceOS::Model::Scope
- PlaceOS::Model::Timestamps
Defined in:
placeos-models/booking_instance.crConstant Summary
-
CALLBACKS =
{before_save: [:update_assets, :update_history] of Nil, after_save: [] of Nil, before_create: [do self.created_at = self.updated_at = Time.utc end] of Nil, after_create: [] of Nil, before_update: [do self.updated_at = Time.utc end] of Nil, after_update: [] of Nil, before_destroy: [] of Nil, after_destroy: [:__record_history_destroy__] of Nil} -
Log =
::Log.for(self) -
PRIMARY_KEY_TYPES =
{:id => (Int64 | Nil)} of Nil => Nil -
macro level key => type
-
PRIMARY_KEYS =
[{:id}]
Constructors
- .from_json(string_or_io : String | IO, trusted : Bool = false) : self
-
.from_json(string_or_io : String | IO, root : String, trusted : Bool = false) : self
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. - .from_trusted_json(string_or_io : String | IO, root : String) : self
-
.from_trusted_json(string_or_io : String | IO) : self
Serialize from a trusted JSON source
-
.from_trusted_yaml(string_or_io : String | IO) : self
Serialize from a trusted YAML source
- .from_yaml(string_or_io : String | IO, trusted : Bool = false) : self
- .new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
- .new(pull : JSON::PullParser)
- .new(rs : DB::ResultSet)
- .new(instance_start : Int64 | ActiveModel::Model::None = ::ActiveModel::Model::None.new, tenant_id : Int64 | ActiveModel::Model::None = ::ActiveModel::Model::None.new, booking_start : Int64 | ActiveModel::Model::None = ::ActiveModel::Model::None.new, booking_end : Int64 | ActiveModel::Model::None = ::ActiveModel::Model::None.new, checked_in : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, checked_in_at : Int64 | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, checked_out_at : Int64 | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, deleted : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, deleted_at : Int64 | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, process_state : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, extension_data : JSON::Any | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, history : Array(PlaceOS::Model::Booking::History) | ActiveModel::Model::None = ::ActiveModel::Model::None.new, utm_source : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, approved : Bool | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, approved_at : Int64 | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, rejected : Bool | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, rejected_at : Int64 | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, approver_id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, approver_name : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, approver_email : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, asset_id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, asset_ids : Array(String) | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, id : Int64 | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, created_at : Time | ActiveModel::Model::None = ::ActiveModel::Model::None.new, updated_at : Time | ActiveModel::Model::None = ::ActiveModel::Model::None.new)
-
.new(params : HTTP::Params | Hash(String, String) | Tuple(String, String))
Initialize PlaceOS::Model::BookingInstance from
HTTP::Params. -
.undelete(resource_id : String) : self
Recreates a deleted record from its latest
deleteentry, keeping its id.
Class Method Summary
-
.attributes : Array(Symbol)
Returns all attribute keys.
- .by_tenant(tenant_id)
-
.change_history(resource_id : String)
Entries recorded for the resource, newest first
- .changefeed_ignored_update_columns : Array(String) | Nil
-
.changes(id : Int64 | Nil | Nil = nil) : ChangeFeed
Changefeed at row (if
#idpassed) or whole table level. - .elastic
- .from_rs(__temp_2500 : DB::ResultSet)
-
.history_ignored : Array(String)
Fields not recorded, changes to only these fields are not recorded at all
-
.history_redacted : Array(String)
Fields whose values are never recorded
- .on_error(err : Exception | IO::Error)
-
.primary_key
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
- .table_name
Macro Summary
Instance Method Summary
-
#after_create
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
-
#after_destroy
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
- #after_initialize(trusted : Bool)
-
#after_save
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
-
#after_update
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
-
#apply_defaults
Generate code to apply default values
-
#approved : Bool | Nil
#approvedgetter -
#approved=(value : Bool | Nil)
#approvedsetter - #approved_assigned? : Bool
-
#approved_at : Int64 | Nil
#approved_atgetter -
#approved_at=(value : Int64 | Nil)
#approved_atsetter - #approved_at_assigned? : Bool
-
#approved_at_change : Tuple(Int64 | Nil | Nil, Int64 | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #approved_at_changed? : Bool
-
#approved_at_default : Int64 | Nil
#approved_at's default value - #approved_at_present? : Bool
- #approved_at_removed? : Bool
- #approved_at_was : Int64 | Nil | Nil
-
#approved_at_will_change! : Nil
Include
#approved_atin the set of changed attributes, whether it has changed or not. -
#approved_change : Tuple(Bool | Nil | Nil, Bool | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #approved_changed? : Bool
-
#approved_default : Bool | Nil
#approved's default value -
#approved_present? : Bool
custom approval state, nil fields inherit from the parent booking.
- #approved_removed? : Bool
- #approved_was : Bool | Nil | Nil
-
#approved_will_change! : Nil
Include
#approvedin the set of changed attributes, whether it has changed or not. -
#approver_email : String | Nil
#approver_emailgetter -
#approver_email=(value : String | Nil)
#approver_emailsetter - #approver_email_assigned? : Bool
-
#approver_email_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #approver_email_changed? : Bool
-
#approver_email_default : String | Nil
#approver_email's default value - #approver_email_present? : Bool
- #approver_email_removed? : Bool
- #approver_email_was : String | Nil | Nil
-
#approver_email_will_change! : Nil
Include
#approver_emailin the set of changed attributes, whether it has changed or not. -
#approver_id : String | Nil
#approver_idgetter -
#approver_id=(value : String | Nil)
#approver_idsetter - #approver_id_assigned? : Bool
-
#approver_id_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #approver_id_changed? : Bool
-
#approver_id_default : String | Nil
#approver_id's default value - #approver_id_present? : Bool
- #approver_id_removed? : Bool
- #approver_id_was : String | Nil | Nil
-
#approver_id_will_change! : Nil
Include
#approver_idin the set of changed attributes, whether it has changed or not. -
#approver_name : String | Nil
#approver_namegetter -
#approver_name=(value : String | Nil)
#approver_namesetter - #approver_name_assigned? : Bool
-
#approver_name_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #approver_name_changed? : Bool
-
#approver_name_default : String | Nil
#approver_name's default value - #approver_name_present? : Bool
- #approver_name_removed? : Bool
- #approver_name_was : String | Nil | Nil
-
#approver_name_will_change! : Nil
Include
#approver_namein the set of changed attributes, whether it has changed or not. -
#asset_id : String | Nil
#asset_idgetter -
#asset_id=(value : String | Nil)
#asset_idsetter - #asset_id_assigned? : Bool
-
#asset_id_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #asset_id_changed? : Bool
-
#asset_id_default : String | Nil
#asset_id's default value -
#asset_id_present? : Bool
custom asset allocation, nil inherits the parent booking assets
- #asset_id_removed? : Bool
- #asset_id_was : String | Nil | Nil
-
#asset_id_will_change! : Nil
Include
#asset_idin the set of changed attributes, whether it has changed or not. -
#asset_ids : Array(String) | Nil
#asset_idsgetter - #asset_ids=(vals : Array(String) | Nil)
-
#asset_ids=(value : Array(String) | Nil)
#asset_idssetter - #asset_ids_assigned? : Bool
-
#asset_ids_change : Tuple(Array(String) | Nil | Nil, Array(String) | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #asset_ids_changed? : Bool
-
#asset_ids_default : Array(String) | Nil
#asset_ids's default value - #asset_ids_present? : Bool
- #asset_ids_removed? : Bool
- #asset_ids_was : Array(String) | Nil | Nil
-
#asset_ids_will_change! : Nil
Include
#asset_idsin the set of changed attributes, whether it has changed or not. -
#assign_attributes(instance_start : Int64 | Missing = Missing, tenant_id : Int64 | Missing = Missing, booking_start : Int64 | Missing = Missing, booking_end : Int64 | Missing = Missing, checked_in : Bool | Missing = Missing, checked_in_at : Int64 | Nil | Missing = Missing, checked_out_at : Int64 | Nil | Missing = Missing, deleted : Bool | Missing = Missing, deleted_at : Int64 | Nil | Missing = Missing, process_state : String | Nil | Missing = Missing, extension_data : JSON::Any | Nil | Missing = Missing, history : Array(PlaceOS::Model::Booking::History) | Missing = Missing, utm_source : String | Nil | Missing = Missing, approved : Bool | Nil | Missing = Missing, approved_at : Int64 | Nil | Missing = Missing, rejected : Bool | Nil | Missing = Missing, rejected_at : Int64 | Nil | Missing = Missing, approver_id : String | Nil | Missing = Missing, approver_name : String | Nil | Missing = Missing, approver_email : String | Nil | Missing = Missing, asset_id : String | Nil | Missing = Missing, asset_ids : Array(String) | Nil | Missing = Missing, id : Int64 | Nil | Missing = Missing, created_at : Time | Missing = Missing, updated_at : Time | Missing = Missing)
Assign to multiple attributes.
-
#assign_attributes(params : HTTP::Params | Hash(String, String) | Tuple(String, String))
Assign to multiple attributes via
HTTP::Params. -
#assign_attributes(model : PlaceOS::Model::BookingInstance)
Assign to multiple attributes from a model object
- #assign_attributes_from_json(json, root : String)
- #assign_attributes_from_json(json)
- #assign_attributes_from_trusted_json(json, root : String)
-
#assign_attributes_from_trusted_json(json)
Assign each field from JSON if field exists in JSON and has changed in model
- #assign_attributes_from_trusted_yaml(yaml)
-
#assign_attributes_from_yaml(yaml)
Uses the YAML parser as JSON is valid YAML
-
#attributes
Returns a
Hashof all attribute values -
#attributes_json(io : IO) : Nil
Serialize attributes to JSON, without any other properties
to_jsonmay include, as.from_jsonexpects them. -
#attributes_json(json : JSON::Builder) : Nil
Serialize attributes to JSON, without any other properties
to_jsonmay include, as.from_jsonexpects them. -
#attributes_json : String
Serialize attributes to JSON, without any other properties
to_jsonmay include, as.from_jsonexpects them. -
#attributes_tuple
Returns a
NamedTupleof all attribute values. -
#before_create
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
-
#before_destroy
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
-
#before_save
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
-
#before_update
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
-
#booking_end : Int64
#booking_endgetter -
#booking_end=(value : Int64)
#booking_endsetter -
#booking_end? : Int64 | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. - #booking_end_assigned? : Bool
-
#booking_end_change : Tuple(Int64 | Nil, Int64 | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #booking_end_changed? : Bool
-
#booking_end_default : Int64
#booking_end's default value - #booking_end_present? : Bool
- #booking_end_removed? : Bool
- #booking_end_was : Int64 | Nil
-
#booking_end_will_change! : Nil
Include
#booking_endin the set of changed attributes, whether it has changed or not. -
#booking_start : Int64
#booking_startgetter -
#booking_start=(value : Int64)
#booking_startsetter -
#booking_start? : Int64 | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. - #booking_start_assigned? : Bool
-
#booking_start_change : Tuple(Int64 | Nil, Int64 | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #booking_start_changed? : Bool
-
#booking_start_default : Int64
#booking_start's default value -
#booking_start_present? : Bool
the new start and end times
- #booking_start_removed? : Bool
- #booking_start_was : Int64 | Nil
-
#booking_start_will_change! : Nil
Include
#booking_startin the set of changed attributes, whether it has changed or not. -
#changed?
Check if any attributes have changed.
-
#changed_attributes
Returns a
Hashwith all changed attributes. -
#changed_json(io : IO) : Nil
Serialize the set of changed attributes to JSON.
-
#changed_json : String
Serialize the set of changed attributes to JSON.
- #changed_persist_attributes
-
#changed_yaml(io : IO) : Nil
Serialize the set of changed attributes to YAML.
-
#changed_yaml : String
Serialize the set of changed attributes to YAML.
-
#changes
Returns a
Hashof changed attributes, mapping each to a{previous, current}tuple. -
#changes_json(io : IO) : Nil
Serialize changed attributes to JSON as
{"attribute": [previous, current]}. -
#changes_json(json : JSON::Builder) : Nil
Serialize changed attributes to JSON as
{"attribute": [previous, current]}. -
#changes_json : String
Serialize changed attributes to JSON as
{"attribute": [previous, current]}. -
#checked_in : Bool
#checked_ingetter -
#checked_in=(value : Bool)
#checked_insetter -
#checked_in? : Bool | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. - #checked_in_assigned? : Bool
-
#checked_in_at : Int64 | Nil
#checked_in_atgetter -
#checked_in_at=(value : Int64 | Nil)
#checked_in_atsetter - #checked_in_at_assigned? : Bool
-
#checked_in_at_change : Tuple(Int64 | Nil | Nil, Int64 | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #checked_in_at_changed? : Bool
-
#checked_in_at_default : Int64 | Nil
#checked_in_at's default value - #checked_in_at_present? : Bool
- #checked_in_at_removed? : Bool
- #checked_in_at_was : Int64 | Nil | Nil
-
#checked_in_at_will_change! : Nil
Include
#checked_in_atin the set of changed attributes, whether it has changed or not. -
#checked_in_change : Tuple(Bool | Nil, Bool | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #checked_in_changed? : Bool
-
#checked_in_default : Bool
#checked_in's default value - #checked_in_present? : Bool
- #checked_in_removed? : Bool
- #checked_in_was : Bool | Nil
-
#checked_in_will_change! : Nil
Include
#checked_inin the set of changed attributes, whether it has changed or not. -
#checked_out_at : Int64 | Nil
#checked_out_atgetter -
#checked_out_at=(value : Int64 | Nil)
#checked_out_atsetter - #checked_out_at_assigned? : Bool
-
#checked_out_at_change : Tuple(Int64 | Nil | Nil, Int64 | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #checked_out_at_changed? : Bool
-
#checked_out_at_default : Int64 | Nil
#checked_out_at's default value - #checked_out_at_present? : Bool
- #checked_out_at_removed? : Bool
- #checked_out_at_was : Int64 | Nil | Nil
-
#checked_out_at_will_change! : Nil
Include
#checked_out_atin the set of changed attributes, whether it has changed or not. -
#clear_changes_information
Reset changes for all attributes.
-
#created_at : Time
#created_atgetter -
#created_at=(value : Time)
#created_atsetter -
#created_at? : Time | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. - #created_at_assigned? : Bool
-
#created_at_change : Tuple(Time | Nil, Time | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #created_at_changed? : Bool
-
#created_at_default : Time
#created_at's default value - #created_at_present? : Bool
- #created_at_removed? : Bool
- #created_at_was : Time | Nil
-
#created_at_will_change! : Nil
Include
#created_atin the set of changed attributes, whether it has changed or not. -
#current_history(state : Booking::State) : Array(History)
An occurrence keeps its own history:
Booking#save!delegates toas_instance.save!, so the parent's#before_save(and the#current_historyit builds) never runs for an instance. -
#deleted : Bool
#deletedgetter -
#deleted=(value : Bool)
#deletedsetter -
#deleted? : Bool | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. - #deleted_assigned? : Bool
-
#deleted_at : Int64 | Nil
#deleted_atgetter -
#deleted_at=(value : Int64 | Nil)
#deleted_atsetter - #deleted_at_assigned? : Bool
-
#deleted_at_change : Tuple(Int64 | Nil | Nil, Int64 | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #deleted_at_changed? : Bool
-
#deleted_at_default : Int64 | Nil
#deleted_at's default value - #deleted_at_present? : Bool
- #deleted_at_removed? : Bool
- #deleted_at_was : Int64 | Nil | Nil
-
#deleted_at_will_change! : Nil
Include
#deleted_atin the set of changed attributes, whether it has changed or not. -
#deleted_change : Tuple(Bool | Nil, Bool | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #deleted_changed? : Bool
-
#deleted_default : Bool
#deleted's default value - #deleted_present? : Bool
- #deleted_removed? : Bool
- #deleted_was : Bool | Nil
-
#deleted_will_change! : Nil
Include
#deletedin the set of changed attributes, whether it has changed or not. -
#extension_data : JSON::Any | Nil
#extension_datagetter -
#extension_data=(value : JSON::Any | Nil)
#extension_datasetter - #extension_data_assigned? : Bool
-
#extension_data_change : Tuple(JSON::Any | Nil | Nil, JSON::Any | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #extension_data_changed? : Bool
-
#extension_data_default : JSON::Any | Nil
#extension_data's default value - #extension_data_present? : Bool
- #extension_data_removed? : Bool
- #extension_data_was : JSON::Any | Nil | Nil
-
#extension_data_will_change! : Nil
Include
#extension_datain the set of changed attributes, whether it has changed or not. -
#history : Array(PlaceOS::Model::Booking::History)
#historygetter -
#history=(value : Array(PlaceOS::Model::Booking::History))
#historysetter -
#history? : Array(PlaceOS::Model::Booking::History) | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. -
#history_action : String | Nil
Overrides the action recorded by the next change, e.g.
-
#history_action=(history_action : String | Nil)
Overrides the action recorded by the next change, e.g.
- #history_assigned? : Bool
-
#history_change : Tuple(Array(PlaceOS::Model::Booking::History) | Nil, Array(PlaceOS::Model::Booking::History) | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #history_changed? : Bool
-
#history_correlation_id : String | Nil
A parent the change should also be found under
-
#history_default : Array(History)
#history's default value -
#history_metadata : PlaceOS::Model::History::Metadata | Nil
Request details recorded with changes to this record, defaults to
History.current_metadata -
#history_metadata=(history_metadata : PlaceOS::Model::History::Metadata | Nil)
Request details recorded with changes to this record, defaults to
History.current_metadata - #history_present? : Bool
- #history_removed? : Bool
-
#history_resource_id : String
an occurrence of the booking, recorded against it
- #history_was : Array(PlaceOS::Model::Booking::History) | Nil
-
#history_will_change! : Nil
Include
#historyin the set of changed attributes, whether it has changed or not. -
#hydrate_booking(main : Booking = parent_booking) : Booking
returns a booking object that represents this instance
-
#id : Int64 | Nil
#idgetter -
#id=(value : Int64 | Nil)
#idsetter - #id?
- #id_assigned? : Bool
-
#id_change : Tuple(Int64 | Nil | Nil, Int64 | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #id_changed? : Bool
-
#id_default : Int64 | Nil
#id's default value - #id_present? : Bool
- #id_removed? : Bool
- #id_was : Int64 | Nil | Nil
-
#id_will_change! : Nil
Include
#idin the set of changed attributes, whether it has changed or not. -
#instance_start : Int64
#instance_startgetter -
#instance_start=(value : Int64)
Setters
#instance_startsetter -
#instance_start? : Int64 | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. - #instance_start_assigned? : Bool
-
#instance_start_change : Tuple(Int64 | Nil, Int64 | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #instance_start_changed? : Bool
-
#instance_start_default : Int64
#instance_start's default value -
#instance_start_present? : Bool
the original starting time of the instance
- #instance_start_removed? : Bool
- #instance_start_was : Int64 | Nil
-
#instance_start_will_change! : Nil
Include
#instance_startin the set of changed attributes, whether it has changed or not. -
#invoke_props
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
-
#parent_booking : Booking
property so we can set this if we've already fetched the parent
-
#parent_booking=(parent_booking : Booking)
property so we can set this if we've already fetched the parent
-
#persistent_attributes
Returns a
Hashof all attributes that can be persisted. -
#primary_key
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
- #primary_key_hash
-
#process_state : String | Nil
#process_stategetter -
#process_state=(value : String | Nil)
#process_statesetter - #process_state_assigned? : Bool
-
#process_state_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #process_state_changed? : Bool
-
#process_state_default : String | Nil
#process_state's default value - #process_state_present? : Bool
- #process_state_removed? : Bool
- #process_state_was : String | Nil | Nil
-
#process_state_will_change! : Nil
Include
#process_statein the set of changed attributes, whether it has changed or not. -
#rejected : Bool | Nil
#rejectedgetter -
#rejected=(value : Bool | Nil)
#rejectedsetter - #rejected_assigned? : Bool
-
#rejected_at : Int64 | Nil
#rejected_atgetter -
#rejected_at=(value : Int64 | Nil)
#rejected_atsetter - #rejected_at_assigned? : Bool
-
#rejected_at_change : Tuple(Int64 | Nil | Nil, Int64 | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #rejected_at_changed? : Bool
-
#rejected_at_default : Int64 | Nil
#rejected_at's default value - #rejected_at_present? : Bool
- #rejected_at_removed? : Bool
- #rejected_at_was : Int64 | Nil | Nil
-
#rejected_at_will_change! : Nil
Include
#rejected_atin the set of changed attributes, whether it has changed or not. -
#rejected_change : Tuple(Bool | Nil | Nil, Bool | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #rejected_changed? : Bool
-
#rejected_default : Bool | Nil
#rejected's default value - #rejected_present? : Bool
- #rejected_removed? : Bool
- #rejected_was : Bool | Nil | Nil
-
#rejected_will_change! : Nil
Include
#rejectedin the set of changed attributes, whether it has changed or not. -
#restore_attributes
Reset each attribute to their previous values and clears all changes.
-
#skip_clash_check : Bool
transient flag (never (de)serialised, so API clients cannot set it): set by
Booking#as_instancewhen the caller has already run an explicit clash check, so save! does not redundantly re-run it. -
#skip_clash_check=(skip_clash_check : Bool)
transient flag (never (de)serialised, so API clients cannot set it): set by
Booking#as_instancewhen the caller has already run an explicit clash check, so save! does not redundantly re-run it. -
#slot_changed? : Bool
the clash validation only needs to run when the booked slot itself (time or asset) changes.
- #table_name
-
#tenant_id : Int64
#tenant_idgetter -
#tenant_id=(value : Int64)
#tenant_idsetter -
#tenant_id? : Int64 | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. - #tenant_id_assigned? : Bool
-
#tenant_id_change : Tuple(Int64 | Nil, Int64 | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #tenant_id_changed? : Bool
-
#tenant_id_default : Int64
#tenant_id's default value - #tenant_id_present? : Bool
- #tenant_id_removed? : Bool
- #tenant_id_was : Int64 | Nil
-
#tenant_id_will_change! : Nil
Include
#tenant_idin the set of changed attributes, whether it has changed or not. - #unique_ids?
-
#update_assets
keep the custom asset_id and asset_ids in sync, mirroring Booking#update_assets but with nil meaning inherit from the parent
-
#updated_at : Time
#updated_atgetter -
#updated_at=(value : Time)
#updated_atsetter -
#updated_at? : Time | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. - #updated_at_assigned? : Bool
-
#updated_at_change : Tuple(Time | Nil, Time | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #updated_at_changed? : Bool
-
#updated_at_default : Time
#updated_at's default value - #updated_at_present? : Bool
- #updated_at_removed? : Bool
- #updated_at_was : Time | Nil
-
#updated_at_will_change! : Nil
Include
#updated_atin the set of changed attributes, whether it has changed or not. -
#utm_source : String?
Accessors for attributes without JSON mapping
-
#utm_source=(value : String | Nil)
#utm_sourcesetter -
#utm_source=(utm_source)
Accessors for attributes without JSON mapping
- #utm_source_assigned? : Bool
-
#utm_source_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #utm_source_changed? : Bool
-
#utm_source_default : String | Nil
#utm_source's default value -
#utm_source_present? : Bool
transient, mirrors
Booking#utm_source-- recorded against the history entry of the transition it caused, never persisted as a column of its own - #utm_source_removed? : Bool
- #utm_source_was : String | Nil | Nil
-
#utm_source_will_change! : Nil
Include
#utm_sourcein the set of changed attributes, whether it has changed or not. -
#validate_nilability
Validate that all non-nillable fields have values.
Instance methods inherited from module PlaceOS::Model::History::Tracked
change_history
change_history,
history_correlation_id : String | Nil
history_correlation_id,
history_resource_id : String
history_resource_id
Macros inherited from module PlaceOS::Model::History::Tracked
history_ignore(*fields)
history_ignore,
history_redact(*fields)
history_redact
Instance methods inherited from module PlaceOS::Model::Associations
format_list_for_postgres(list : Enumerable(String)) : String
format_list_for_postgres,
reset_associations
reset_associations
Class methods inherited from module PlaceOS::Model::Associations
format_list_for_postgres(list : Enumerable(String)) : String
format_list_for_postgres
Macros inherited from module PlaceOS::Model::Associations
belongs_to(parent_class, dependent = :none, association_name = nil, foreign_key = nil, presence = false, pk_type = nil, serialize = true)
belongs_to,
has_many(child_class, collection_name = nil, dependent = :none, foreign_key = nil, serialize = false)
has_many,
has_one(child_class, dependent = :none, association_name = nil, presence = false)
has_one
Instance methods inherited from class PlaceOS::Model::ModelWithAutoKey
after_create
after_create,
after_destroy
after_destroy,
after_save
after_save,
after_update
after_update,
apply_defaults
apply_defaults,
assign_attributes(params : HTTP::Params | Hash(String, String) | Tuple(String, String))assign_attributes(model : PlaceOS::Model::ModelWithAutoKey)
assign_attributes assign_attributes, attributes attributes, attributes_tuple attributes_tuple, before_create before_create, before_destroy before_destroy, before_save before_save, before_update before_update, invoke_props invoke_props, persistent_attributes persistent_attributes, primary_key primary_key
Constructor methods inherited from class PlaceOS::Model::ModelWithAutoKey
new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)new(pull : JSON::PullParser)
new(rs : DB::ResultSet) new
Class methods inherited from class PlaceOS::Model::ModelWithAutoKey
attributes : Array(Symbol)
attributes,
changefeed_ignored_update_columns : Array(String) | Nil
changefeed_ignored_update_columns,
from_rs(rs : DB::ResultSet)
from_rs,
primary_key
primary_key
Constructor Detail
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">
Serialize from a trusted JSON source
Serialize from a trusted YAML source
Initialize PlaceOS::Model::BookingInstance from HTTP::Params.
Recreates a deleted record from its latest delete entry, keeping its id.
Records removed alongside it (cascading deletes) are not restored and redacted fields are left at their defaults. Raises if there is no delete entry or the record can't be saved, e.g. if it already exists.
Class Method Detail
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.
Fields not recorded, changes to only these fields are not recorded at all
Macro Detail
Instance Method Detail
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
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
custom approval state, nil fields inherit from the parent booking. if either approved or rejected is set, all the approval fields are considered overridden as a group (see #hydrate_booking)
Include #approved 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 #approver_email 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 #approver_id 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 #approver_name 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 #asset_id 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 #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
Serialize attributes to JSON, without any other properties to_json may
include, as .from_json expects them.
Values are serialized as in to_json, applying any attribute converters.
Serialize attributes to JSON, without any other properties to_json may
include, as .from_json expects them.
Values are serialized as in to_json, applying any attribute converters.
Serialize attributes to JSON, without any other properties to_json may
include, as .from_json expects them.
Values are serialized as in to_json, applying any attribute converters.
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
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.
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.
Serialize changed attributes to JSON as {"attribute": [previous, current]}.
Values are serialized as in to_json, applying any attribute converters.
Serialize changed attributes to JSON as {"attribute": [previous, current]}.
Values are serialized as in to_json, applying any attribute converters.
Serialize changed attributes to JSON as {"attribute": [previous, current]}.
Values are serialized as in to_json, applying any attribute converters.
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 #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.
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.
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 #created_at in the set of changed attributes, whether it has changed or not.
An occurrence keeps its own history: Booking#save! delegates to
as_instance.save!, so the parent's #before_save (and the #current_history
it builds) never runs for an instance. Without this the occurrence records no
transitions at all and the #utm_source behind them is lost.
Mirrors Booking#current_history. State comes from the hydrated booking --
that is exactly what the API presents for this occurrence, so its state is the
one the history should record, and it avoids duplicating the state machine.
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 #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.
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.
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.
Overrides the action recorded by the next change, e.g. approve
Returns a Tuple of the previous and the current value of an instance variable if it has changed
A parent the change should also be found under
Request details recorded with changes to this record, defaults to
History.current_metadata
Request details recorded with changes to this record, defaults to
History.current_metadata
Include #history in the set of changed attributes, whether it has changed or not.
returns a booking object that represents this instance
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include #id 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.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include #instance_start 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
property so we can set this if we've already fetched the parent
property so we can set this if we've already fetched the parent
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include #process_state 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_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.
transient flag (never (de)serialised, so API clients cannot set it): set by
Booking#as_instance when the caller has already run an explicit clash
check, so save! does not redundantly re-run it.
transient flag (never (de)serialised, so API clients cannot set it): set by
Booking#as_instance when the caller has already run an explicit clash
check, so save! does not redundantly re-run it.
the clash validation only needs to run when the booked slot itself (time or asset) changes. approving, rejecting or checking in an existing instance must not be blocked by a clash it did not introduce.
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 #tenant_id in the set of changed attributes, whether it has changed or not.
keep the custom asset_id and asset_ids in sync, mirroring Booking#update_assets but with nil meaning inherit from the parent
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 #updated_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
transient, mirrors Booking#utm_source -- recorded against the history entry
of the transition it caused, never persisted as a column of its own
Include #utm_source in the set of changed attributes, whether it has changed or not.