class PlaceOS::Model::EventMetadata
- PlaceOS::Model::EventMetadata
- PlaceOS::Model::ModelWithAutoKey
- PgORM::Base
- ActiveModel::Model
- Reference
- Object
Included Modules
- OpenAPI::Generator::Serializable::Adapters::ActiveModel
- PlaceOS::Model::Associations
- PlaceOS::Model::Scope
- PlaceOS::Model::Timestamps
Extended Modules
- OpenAPI::Generator::Serializable
Defined in:
placeos-models/event_metadata.crConstant Summary
-
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 if event_start_changed? || event_end_changed? linked_bookings = self.bookings if linked_bookings.size > 0 clashing = linked_bookings.select do |booking| booking.booking_start = event_start booking.booking_end = event_end booking.clashing? end if clashing.empty? else (Booking.where({:id => clashing.map(&.id)})).update_all({:rejected => true, :rejected_at => Time.utc.to_unix}) end Booking.where(event_id: id).update_all({:booking_start => event_start, :booking_end => event_end}) end end if cancelled_changed? && cancelled Booking.where(event_id: id).update_all({:rejected => true, :rejected_at => Time.utc.to_unix}) end end, do self.updated_at = Time.utc end] of Nil, after_update: [] of Nil, before_destroy: [:destroy_attendees, :destroy_bookings] of Nil, after_destroy: [] of Nil}
-
Log =
::Log.for(self)
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(system_id : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, event_id : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, recurring_master_id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, ical_uid : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, host_email : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, resource_calendar : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, event_start : Int64 | ActiveModel::Model::None = ::ActiveModel::Model::None.new, event_end : Int64 | ActiveModel::Model::None = ::ActiveModel::Model::None.new, cancelled : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, ext_data : JSON::Any | 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::EventMetadata from
HTTP::Params
.
Class Method Summary
-
.attributes : Array(Symbol)
Returns all attribute keys.
- .auto_generate_id : Bool
- .by_event_ids(event_ids)
- .by_ext_data(field_name, value)
- .by_tenant(tenant_id)
-
.by_tenant_id(id)
Look up instances of this model dependent on the foreign key
-
.changes(id : PrimaryKeyType = nil) : ChangeFeed
Changefeed at row (if
#id
passed) or whole table level. - .elastic
- .from_rs(__temp_486 : DB::ResultSet)
- .is_ending_after(start_time)
- .is_starting_before(end_time)
- .migrate_recurring_metadata(system_id : String, recurrance : PlaceCalendar::Event, parent_metadata : EventMetadata)
- .on_error(err : Exception | IO::Error)
- .primary_key : Symbol
- .table_name
Instance Method Summary
- #__tenant : Tenant | Nil
- #__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(system_id : String | Missing = Missing, event_id : String | Missing = Missing, recurring_master_id : String | Nil | Missing = Missing, ical_uid : String | Missing = Missing, host_email : String | Missing = Missing, resource_calendar : String | Missing = Missing, event_start : Int64 | Missing = Missing, event_end : Int64 | Missing = Missing, cancelled : Bool | Missing = Missing, ext_data : JSON::Any | 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 mulitple attributes via
HTTP::Params
. -
#assign_attributes(model : PlaceOS::Model::EventMetadata)
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
- #attendees
-
#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
- #bookings
-
#cancelled : Bool
#cancelled
getter -
#cancelled=(value : Bool)
#cancelled
setter - #cancelled? : Bool | Nil
- #cancelled_assigned? : Bool
-
#cancelled_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
- #cancelled_changed? : Bool
-
#cancelled_default : Bool
#cancelled
's default value - #cancelled_present? : Bool
- #cancelled_was : Bool | Nil
-
#cancelled_will_change! : Nil
Include
#cancelled
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 : 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.
-
#clear_changes_information
Reset changes for all attributes.
-
#created_at : Time
#created_at
getter -
#created_at=(value : Time)
#created_at
setter - #created_at? : Time | Nil
- #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_was : Time | Nil
-
#created_at_will_change! : Nil
Include
#created_at
in the set of changed attributes, whether it has changed or not. - #destroy_attendees
- #destroy_bookings
-
#event_end : Int64
#event_end
getter -
#event_end=(value : Int64)
#event_end
setter - #event_end? : Int64 | Nil
- #event_end_assigned? : Bool
-
#event_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
- #event_end_changed? : Bool
-
#event_end_default : Int64
#event_end
's default value - #event_end_present? : Bool
- #event_end_was : Int64 | Nil
-
#event_end_will_change! : Nil
Include
#event_end
in the set of changed attributes, whether it has changed or not. -
#event_id : String
#event_id
getter -
#event_id=(value : String)
#event_id
setter - #event_id? : String | Nil
- #event_id_assigned? : Bool
-
#event_id_change : Tuple(String | Nil, String | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #event_id_changed? : Bool
-
#event_id_default : String
#event_id
's default value - #event_id_present? : Bool
- #event_id_was : String | Nil
-
#event_id_will_change! : Nil
Include
#event_id
in the set of changed attributes, whether it has changed or not. -
#event_start : Int64
#event_start
getter -
#event_start=(value : Int64)
#event_start
setter - #event_start? : Int64 | Nil
- #event_start_assigned? : Bool
-
#event_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
- #event_start_changed? : Bool
-
#event_start_default : Int64
#event_start
's default value - #event_start_present? : Bool
- #event_start_was : Int64 | Nil
-
#event_start_will_change! : Nil
Include
#event_start
in the set of changed attributes, whether it has changed or not. -
#ext_data : JSON::Any | Nil
#ext_data
getter -
#ext_data=(value : JSON::Any | Nil)
#ext_data
setter - #ext_data_assigned? : Bool
-
#ext_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
- #ext_data_changed? : Bool
-
#ext_data_default : JSON::Any | Nil
#ext_data
's default value - #ext_data_present? : Bool
- #ext_data_was : JSON::Any | Nil | Nil
-
#ext_data_will_change! : Nil
Include
#ext_data
in the set of changed attributes, whether it has changed or not. - #for_event_instance?(event, client_id)
-
#host_email : String
#host_email
getter -
#host_email=(value : String)
#host_email
setter - #host_email? : String | Nil
- #host_email_assigned? : Bool
-
#host_email_change : Tuple(String | Nil, String | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #host_email_changed? : Bool
-
#host_email_default : String
#host_email
's default value - #host_email_present? : Bool
- #host_email_was : String | Nil
-
#host_email_will_change! : Nil
Include
#host_email
in the set of changed attributes, whether it has changed or not. -
#ical_uid : String
#ical_uid
getter -
#ical_uid=(value : String)
#ical_uid
setter - #ical_uid? : String | Nil
- #ical_uid_assigned? : Bool
-
#ical_uid_change : Tuple(String | Nil, String | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #ical_uid_changed? : Bool
-
#ical_uid_default : String
#ical_uid
's default value - #ical_uid_present? : Bool
- #ical_uid_was : String | Nil
-
#ical_uid_will_change! : Nil
Include
#ical_uid
in the set of changed attributes, whether it has changed or not. -
#id : Int64 | Nil
#id
getter -
#id=(value : Int64 | Nil)
#id
setter -
#id? : Int64 | Nil | Nil
Same as
#id
but may returnnil
when the record hasn't been saved instead of raising. - #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_was : Int64 | Nil | Nil
-
#id_will_change! : Nil
Include
#id
in the set of changed attributes, whether it has changed or not. - #linked_bookings : Array(Booking) | Nil
- #linked_bookings=(linked_bookings : Array(Booking) | Nil)
-
#persistent_attributes
Returns a
Hash
of all attributes that can be persisted. -
#recurring_master_id : String | Nil
#recurring_master_id
getter -
#recurring_master_id=(value : String | Nil)
#recurring_master_id
setter - #recurring_master_id_assigned? : Bool
-
#recurring_master_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
- #recurring_master_id_changed? : Bool
-
#recurring_master_id_default : String | Nil
#recurring_master_id
's default value - #recurring_master_id_present? : Bool
- #recurring_master_id_was : String | Nil | Nil
-
#recurring_master_id_will_change! : Nil
Include
#recurring_master_id
in the set of changed attributes, whether it has changed or not. - #render_linked_bookings=(render_linked_bookings : Bool)
- #render_linked_bookings? : Bool
- #reset_associations
-
#resource_calendar : String
#resource_calendar
getter -
#resource_calendar=(value : String)
#resource_calendar
setter - #resource_calendar? : String | Nil
- #resource_calendar_assigned? : Bool
-
#resource_calendar_change : Tuple(String | Nil, String | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #resource_calendar_changed? : Bool
-
#resource_calendar_default : String
#resource_calendar
's default value - #resource_calendar_present? : Bool
- #resource_calendar_was : String | Nil
-
#resource_calendar_will_change! : Nil
Include
#resource_calendar
in the set of changed attributes, whether it has changed or not. -
#restore_attributes
Reset each attribute to their previous values and clears all changes.
-
#run_create_callbacks(&)
Wrap a block with callbacks for the appropriate crud operation
-
#run_destroy_callbacks(&)
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
-
#run_save_callbacks(&)
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
-
#run_update_callbacks(&)
Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk
- #set_ext_data(meta : JSON::Any)
-
#system_id : String
#system_id
getter -
#system_id=(value : String)
Setters
#system_id
setter - #system_id? : String | Nil
- #system_id_assigned? : Bool
-
#system_id_change : Tuple(String | Nil, String | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
- #system_id_changed? : Bool
-
#system_id_default : String
#system_id
's default value - #system_id_present? : Bool
- #system_id_was : String | Nil
-
#system_id_will_change! : Nil
Include
#system_id
in the set of changed attributes, whether it has changed or not. - #table_name
-
#tenant : Tenant | Nil
Retrieves the parent relationship
- #tenant! : Tenant
-
#tenant=(parent : Tenant)
Sets the parent relationship
-
#tenant_id : Int64 | Nil
#tenant_id
getter -
#tenant_id=(value : Int64 | Nil)
#tenant_id
setter - #tenant_id_assigned? : Bool
-
#tenant_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
- #tenant_id_changed? : Bool
-
#tenant_id_default : Int64 | Nil
#tenant_id
's default value - #tenant_id_present? : Bool
- #tenant_id_was : Int64 | Nil | Nil
-
#tenant_id_will_change! : Nil
Include
#tenant_id
in the set of changed attributes, whether it has changed or not. - #to_json(json : JSON::Builder)
-
#updated_at : Time
#updated_at
getter -
#updated_at=(value : Time)
#updated_at
setter - #updated_at? : Time | Nil
- #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_was : Time | Nil
-
#updated_at_will_change! : Nil
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.
Macro Summary
Instance methods inherited from module PlaceOS::Model::Associations
reset_associations
reset_associations
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, persistent_attributes persistent_attributes, run_create_callbacks(&) run_create_callbacks, run_destroy_callbacks(&) run_destroy_callbacks, run_save_callbacks(&) run_save_callbacks, run_update_callbacks(&) run_update_callbacks
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,
auto_generate_id : Bool
auto_generate_id,
from_rs(rs : DB::ResultSet)
from_rs,
primary_key : Symbol
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::EventMetadata from HTTP::Params
.
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.
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
Assign to multiple attributes.
Assign to mulitple 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
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 #cancelled
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_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 #event_end
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 #event_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 #event_start
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 #ext_data
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 #host_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 #ical_uid
in the set of changed attributes, whether it has changed or not.
Same as #id
but may return nil
when the record hasn't been saved
instead of raising.
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.
Returns a Tuple of the previous and the current value of an instance variable if it has changed
Include #recurring_master_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 #resource_calendar
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
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 #system_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 #tenant_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 #updated_at
in the set of changed attributes, whether it has changed or not.