class

PlaceOS::Model::Guest

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: [] 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: [:destroy_attendees] 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(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
Source
new(pull : JSON::PullParser)
Source
new(rs : DB::ResultSet)
new(email : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, name : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, preferred_name : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, phone : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, organisation : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, notes : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, photo : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, banned : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, dangerous : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, searchable : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, extension_data : JSON::Any | ActiveModel::Model::None = ::ActiveModel::Model::None.new, checked_in : Bool | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, visit_expected : Bool | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, booking : PlaceOS::Model::Booking | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, event : PlaceCalendar::Event | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, event_metadata : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, booking_rep : PlaceOS::Model::Booking | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, tenant_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)
new(params : HTTP::Params | Hash(String, String) | Tuple(String, String))

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

Class methods

attributes

Returns all attribute keys.

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_1853 : 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

__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(email : String | Missing = Missing, name : String | Nil | Missing = Missing, preferred_name : String | Nil | Missing = Missing, phone : String | Nil | Missing = Missing, organisation : String | Nil | Missing = Missing, notes : String | Nil | Missing = Missing, photo : String | Nil | Missing = Missing, banned : Bool | Missing = Missing, dangerous : Bool | Missing = Missing, searchable : String | Nil | Missing = Missing, extension_data : JSON::Any | Missing = Missing, checked_in : Bool | Nil | Missing = Missing, visit_expected : Bool | Nil | Missing = Missing, booking : PlaceOS::Model::Booking | Nil | Missing = Missing, event : PlaceCalendar::Event | Nil | Missing = Missing, event_metadata : String | Nil | Missing = Missing, booking_rep : PlaceOS::Model::Booking | Nil | Missing = Missing, tenant_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::Guest)

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

attendee_for(event_id)
Source
attendees
Source
attending_today(tenant_id, timezone)
Source
attributes

Returns a Hash of all attribute values

attributes_tuple

Returns a NamedTuple of all attribute values.

banned

banned getter

banned=(value : Bool)

banned setter

banned?

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.

banned_assigned?
banned_change

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

banned_changed?
banned_default

banned's default value

Source
banned_present?
banned_removed?
banned_was
banned_will_change!

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

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

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.

booking=(value : PlaceOS::Model::Booking | Nil)

booking setter

booking=(booking)
booking_assigned?
booking_change

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

booking_changed?
booking_default

booking's default value

Source
booking_present?
booking_removed?
booking_rep

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.

booking_rep=(value : PlaceOS::Model::Booking | Nil)

booking_rep setter

booking_rep=(booking_rep)
booking_rep_assigned?
booking_rep_change

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

booking_rep_changed?
booking_rep_default

booking_rep's default value

Source
booking_rep_present?
booking_rep_removed?
booking_rep_was
booking_rep_will_change!

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

booking_was
booking_will_change!

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

bookings(future_only = true, limit = 10)
Source
change_extension_data(data : JSON::Any)
Source
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

Accessors for attributes without JSON mapping

checked_in=(value : Bool | Nil)

checked_in setter

checked_in=(checked_in)

Accessors for attributes without JSON mapping

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.

dangerous

dangerous getter

dangerous=(value : Bool)

dangerous setter

dangerous?

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.

dangerous_assigned?
dangerous_change

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

dangerous_changed?
dangerous_default

dangerous's default value

Source
dangerous_present?
dangerous_removed?
dangerous_was
dangerous_will_change!

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

destroy_attendees
email

email getter

email=(value : String)

Setters email setter

email?

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.

email_assigned?
email_change

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

email_changed?
email_default

email's default value

Source
email_present?
email_removed?
email_was
email_will_change!

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

event

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.

event=(value : PlaceCalendar::Event | Nil)

event setter

event=(event)
event_assigned?
event_change

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

event_changed?
event_default

event's default value

Source
event_metadata

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.

event_metadata=(value : String | Nil)

event_metadata setter

event_metadata=(event_metadata)
event_metadata_assigned?
event_metadata_change

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

event_metadata_changed?
event_metadata_default

event_metadata's default value

Source
event_metadata_present?
event_metadata_removed?
event_metadata_was
event_metadata_will_change!

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

event_present?
event_removed?
event_was
event_will_change!

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

events(future_only = true, limit = 10)
Source
extension_data

extension_data getter

extension_data=(value : JSON::Any)

extension_data setter

extension_data?

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.

extension_data_assigned?
extension_data_change

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

extension_data_changed?
extension_data_default

extension_data's default value

Source
extension_data_present?
extension_data_removed?
extension_data_was
extension_data_will_change!

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

for_booking_to_h(visitor : Attendee, booking_details : Booking | Nil)
Source
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

name getter

name=(value : String | Nil)

name setter

name_assigned?
name_change

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

name_changed?
name_default

name's default value

Source
name_present?
name_removed?
name_was
name_will_change!

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

notes

notes getter

notes=(value : String | Nil)

notes setter

notes_assigned?
notes_change

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

notes_changed?
notes_default

notes's default value

Source
notes_present?
notes_removed?
notes_was
notes_will_change!

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

organisation

organisation getter

organisation=(value : String | Nil)

organisation setter

organisation_assigned?
organisation_change

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

organisation_changed?
organisation_default

organisation's default value

Source
organisation_present?
organisation_removed?
organisation_was
organisation_will_change!

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

patch(changes : self)
Source
persistent_attributes

Returns a Hash of all attributes that can be persisted.

phone

phone getter

phone=(value : String | Nil)

phone setter

phone_assigned?
phone_change

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

phone_changed?
phone_default

phone's default value

Source
phone_present?
phone_removed?
phone_was
phone_will_change!

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

photo

photo getter

photo=(value : String | Nil)

photo setter

photo_assigned?
photo_change

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

photo_changed?
photo_default

photo's default value

Source
photo_present?
photo_removed?
photo_was
photo_will_change!

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

preferred_name

preferred_name getter

preferred_name=(value : String | Nil)

preferred_name setter

preferred_name_assigned?
preferred_name_change

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

preferred_name_changed?
preferred_name_default

preferred_name's default value

Source
preferred_name_present?
preferred_name_removed?
preferred_name_was
preferred_name_will_change!

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

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.

searchable

searchable getter

searchable=(value : String | Nil)

searchable setter

searchable_assigned?
searchable_change

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

searchable_changed?
searchable_default

searchable's default value

Source
searchable_present?
searchable_removed?
searchable_was
searchable_will_change!

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

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(visitor : Attendee | Nil, is_parent_metadata, meeting_details : PlaceCalendar::Event | Nil)
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

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=(value : Bool | Nil)

visit_expected setter

visit_expected=(visit_expected)
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