class

PlaceOS::Model::Attendee

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

CALLBACKS = { before_save: [:survey_trigger] of Nil, after_save: [:sync_booking_checkin] 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: [] 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. 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">
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(rs : DB::ResultSet)
new(checked_in : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, visit_expected : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, guest_id : Int64 | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, tenant_id : Int64 | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, event_id : Int64 | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, booking_id : Int64 | 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)

Initialize PlaceOS::Model::Attendee from HTTP::Params.

Class methods

attributes

Returns all attribute keys.

by_booking_id(id)

Look up instances of this model dependent on the foreign key

Source
by_bookings(tenant_id, booking_ids)
Source
by_event_id(id)

Look up instances of this model dependent on the foreign key

Source
by_guest_id(id)

Look up instances of this model dependent on the foreign key

Source
by_tenant(tenant_id)
Source
by_tenant_id(id)

Look up instances of this model dependent on the foreign key

Source
changes(id : Int64 | Nil | Nil = nil) : ChangeFeed

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.

elastic
from_rs(__temp_1865 : DB::ResultSet)
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

Source
table_name

Instance methods

__booking
__booking=(__booking : Booking | Nil)
__event_metadata
__event_metadata=(__event_metadata : EventMetadata | Nil)
__guest
__guest=(__guest : Guest | Nil)
__tenant
__tenant=(__tenant : Tenant | Nil)
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

assign_attributes(checked_in : Bool | Missing = Missing, visit_expected : Bool | Missing = Missing, guest_id : Int64 | Nil | Missing = Missing, tenant_id : Int64 | Nil | Missing = Missing, event_id : Int64 | Nil | Missing = Missing, booking_id : Int64 | 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::Attendee)

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 Hash of all attribute values

attributes_tuple

Returns a NamedTuple of 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

Retrieves the parent relationship

Source
booking!
Source
booking=(parent : Booking)

Sets the parent relationship

Source
booking_id

booking_id getter

booking_id=(value : Int64 | Nil)

booking_id setter

booking_id_assigned?
booking_id_change

Returns a Tuple of the previous and the current value of an instance variable if it has changed

booking_id_changed?
booking_id_default

booking_id's default value

booking_id_present?
booking_id_removed?
booking_id_was
booking_id_will_change!

Include booking_id in the set of changed attributes, whether it has changed or not.

changed?

Check if any attributes have changed.

changed_attributes

Returns a Hash with all changed attributes.

changed_json(io : IO) : Nil

Serialize the set of changed attributes to JSON.

changed_json

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

Serialize the set of changed attributes to YAML.

checked_in

checked_in getter

checked_in=(value : Bool)

Setters checked_in setter

checked_in?

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_assigned?
checked_in_change

Returns a Tuple of the previous and the current value of an instance variable if it has changed

checked_in_changed?
checked_in_default

checked_in's default value

Source
checked_in_present?
checked_in_removed?
checked_in_was
checked_in_will_change!

Include checked_in in the set of changed attributes, whether it has changed or not.

clear_changes_information

Reset changes for all attributes.

created_at

created_at getter

created_at=(value : Time)

created_at setter

created_at?

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.

created_at_assigned?
created_at_change

Returns a Tuple of the previous and the current value of an instance variable if it has changed

created_at_changed?
created_at_default

created_at's default value

created_at_present?
created_at_removed?
created_at_was
created_at_will_change!

Include created_at in the set of changed attributes, whether it has changed or not.

email
Source
event
Source
event_id

event_id getter

event_id=(value : Int64 | Nil)

event_id setter

event_id_assigned?
event_id_change

Returns a Tuple of the previous and the current value of an instance variable if it has changed

event_id_changed?
event_id_default

event_id's default value

event_id_present?
event_id_removed?
event_id_was
event_id_will_change!

Include event_id in the set of changed attributes, whether it has changed or not.

event_metadata

Retrieves the parent relationship

Source
event_metadata!
Source
event_metadata=(parent : EventMetadata)

Sets the parent relationship

Source
for_booking?
Source
guest

Retrieves the parent relationship

Source
guest!
Source
guest=(parent : Guest)

Sets the parent relationship

Source
guest_id

guest_id getter

guest_id=(value : Int64 | Nil)

guest_id setter

guest_id?

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.

guest_id_assigned?
guest_id_change

Returns a Tuple of the previous and the current value of an instance variable if it has changed

guest_id_changed?
guest_id_default

guest_id's default value

guest_id_present?
guest_id_removed?
guest_id_was
guest_id_will_change!

Include guest_id in the set of changed attributes, whether it has changed or not.

id

id getter

id=(value : Int64 | Nil)

id setter

id?
id_assigned?
id_change

Returns a Tuple of the previous and the current value of an instance variable if it has changed

id_changed?
id_default

id's default value

id_present?
id_removed?
id_was
id_will_change!

Include id in 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

name
notes
organisation
persistent_attributes

Returns a Hash of all attributes that can be persisted.

phone
photo
preferred_name
primary_key

Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk

Source
primary_key_hash
reset_associations
Source
restore_attributes

Reset each attribute to their previous values and clears all changes.

survey_trigger
Source
sync_booking_checkin

a one way sync ensuring that the booking is checked in if a guest is

Source
table_name
tenant

Retrieves the parent relationship

Source
tenant!
Source
tenant=(parent : Tenant)

Sets the parent relationship

Source
tenant_id

tenant_id getter

tenant_id=(value : Int64 | Nil)

tenant_id setter

tenant_id_assigned?
tenant_id_change

Returns a Tuple of the previous and the current value of an instance variable if it has changed

tenant_id_changed?
tenant_id_default

tenant_id's default value

tenant_id_present?
tenant_id_removed?
tenant_id_was
tenant_id_will_change!

Include tenant_id in the set of changed attributes, whether it has changed or not.

to_h(is_parent_metadata : Bool | Nil, meeting_details : PlaceCalendar::Event | Nil)
Source
to_json(json : JSON::Builder)
Source
updated_at

updated_at getter

updated_at=(value : Time)

updated_at setter

updated_at?

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.

updated_at_assigned?
updated_at_change

Returns a Tuple of the previous and the current value of an instance variable if it has changed

updated_at_changed?
updated_at_default

updated_at's default value

updated_at_present?
updated_at_removed?
updated_at_was
updated_at_will_change!

Include updated_at in the set of changed attributes, whether it has changed or not.

validate_nilability

Validate that all non-nillable fields have values.

visit_expected

visit_expected getter

visit_expected=(value : Bool)

visit_expected setter

visit_expected?

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.

visit_expected_assigned?
visit_expected_change

Returns a Tuple of the previous and the current value of an instance variable if it has changed

visit_expected_changed?
visit_expected_default

visit_expected's default value

Source
visit_expected_present?
visit_expected_removed?
visit_expected_was
visit_expected_will_change!

Include visit_expected in the set of changed attributes, whether it has changed or not.

Macros

scope(name, &block)

Nested types