forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
class
PlaceOS::Model::Playlist
- PlaceOS::Model::Playlist
- PlaceOS::Model::ModelBase
- PgORM::Base
- ActiveModel::Model
- Reference
- Object
Overview
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Included Modules
Defined in:
placeos-models/playlist.crplaceos-models/playlist/schedule.cr
Constant 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 self.updated_at = Time.utc end] of Nil, after_update: [] of Nil, before_destroy: [] of Nil, after_destroy: [] of Nil} -
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
Log =
::Log.for(self) -
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
PRIMARY_KEY_TYPES =
{:id => (String | Nil)} of Nil => Nil -
macro level key => type
-
PRIMARY_KEYS =
[{:id}] -
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time).
Constructors
-
.from_json(string_or_io : String | IO, trusted : Bool = false) : self
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
.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
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
.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
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
.new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
.new(pull : JSON::PullParser)
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
.new(rs : DB::ResultSet)
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
.new(created_at : Time | ActiveModel::Model::None = ::ActiveModel::Model::None.new, updated_at : Time | ActiveModel::Model::None = ::ActiveModel::Model::None.new, name : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, description : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, authority_id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, orientation : PlaceOS::Model::Playlist::Orientation | ActiveModel::Model::None = ::ActiveModel::Model::None.new, play_count : Int64 | ActiveModel::Model::None = ::ActiveModel::Model::None.new, play_through_count : Int64 | ActiveModel::Model::None = ::ActiveModel::Model::None.new, default_animation : PlaceOS::Model::Playlist::Animation | ActiveModel::Model::None = ::ActiveModel::Model::None.new, random : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, enabled : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, default_duration : Int32 | ActiveModel::Model::None = ::ActiveModel::Model::None.new, valid_from : Int64 | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, valid_until : Int64 | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, schedules : Array(PlaceOS::Model::Playlist::Schedule) | ActiveModel::Model::None = ::ActiveModel::Model::None.new, id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new)
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
.new(params : HTTP::Params | Hash(String, String) | Tuple(String, String))
Initialize PlaceOS::Model::Playlist from
HTTP::Params.
Class Method Summary
-
.attributes : Array(Symbol)
Returns all attribute keys.
-
.by_authority_id(id)
Look up instances of this model dependent on the foreign key
-
.changes(id : String | Nil | Nil = nil) : ChangeFeed
Changefeed at row (if
#idpassed) or whole table level. -
.elastic
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
.from_rs(__temp_1620 : DB::ResultSet)
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
.on_error(err : Exception | IO::Error)
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
.primary_key
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
.table_name
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). - .update_counts(metrics : Hash(String, Int32))
- .update_through_counts(metrics : Hash(String, Int32))
Instance Method Summary
- #__authority : Authority | Nil
- #__authority=(__authority : Authority | Nil)
-
#after_create
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#after_destroy
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#after_initialize(trusted : Bool)
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#after_save
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#after_update
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#apply_defaults
Generate code to apply default values
-
#assign_attributes(created_at : Time | Missing = Missing, updated_at : Time | Missing = Missing, name : String | Missing = Missing, description : String | Missing = Missing, authority_id : String | Nil | Missing = Missing, orientation : PlaceOS::Model::Playlist::Orientation | Missing = Missing, play_count : Int64 | Missing = Missing, play_through_count : Int64 | Missing = Missing, default_animation : PlaceOS::Model::Playlist::Animation | Missing = Missing, random : Bool | Missing = Missing, enabled : Bool | Missing = Missing, default_duration : Int32 | Missing = Missing, valid_from : Int64 | Nil | Missing = Missing, valid_until : Int64 | Nil | Missing = Missing, schedules : Array(PlaceOS::Model::Playlist::Schedule) | Missing = Missing, id : String | Nil | 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::Playlist)
Assign to multiple attributes from a model object
-
#assign_attributes_from_json(json, root : String)
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#assign_attributes_from_json(json)
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#assign_attributes_from_trusted_json(json, root : String)
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#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)
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#assign_attributes_from_yaml(yaml)
Uses the YAML parser as JSON is valid YAML
-
#attributes
Returns a
Hashof all attribute values -
#attributes_tuple
Returns a
NamedTupleof all attribute values. -
#authority : Authority | Nil
Retrieves the parent relationship
- #authority! : Authority
-
#authority=(parent : Authority)
Sets the parent relationship
-
#authority_id : String | Nil
#authority_idgetter -
#authority_id=(value : String | Nil)
#authority_idsetter -
#authority_id_assigned? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#authority_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
-
#authority_id_changed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#authority_id_default : String | Nil
#authority_id's default value - #authority_id_present? : Bool
-
#authority_id_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#authority_id_was : String | Nil | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#authority_id_will_change! : Nil
Include
#authority_idin the set of changed attributes, whether it has changed or not. -
#before_create
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#before_destroy
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#before_save
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#before_update
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#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
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#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_atgetter -
#created_at=(value : Time)
Setters
#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
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#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
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#created_at_default : Time
#created_at's default value - #created_at_present? : Bool
-
#created_at_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#created_at_was : Time | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#created_at_will_change! : Nil
Include
#created_atin the set of changed attributes, whether it has changed or not. -
#default_animation : PlaceOS::Model::Playlist::Animation
#default_animationgetter -
#default_animation=(value : PlaceOS::Model::Playlist::Animation)
#default_animationsetter -
#default_animation? : PlaceOS::Model::Playlist::Animation | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. -
#default_animation_assigned? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#default_animation_change : Tuple(PlaceOS::Model::Playlist::Animation | Nil, PlaceOS::Model::Playlist::Animation | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
-
#default_animation_changed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#default_animation_default : Animation
#default_animation's default value - #default_animation_present? : Bool
-
#default_animation_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#default_animation_was : PlaceOS::Model::Playlist::Animation | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#default_animation_will_change! : Nil
Include
#default_animationin the set of changed attributes, whether it has changed or not. -
#default_duration : Int32
#default_durationgetter -
#default_duration=(value : Int32)
#default_durationsetter -
#default_duration? : Int32 | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. -
#default_duration_assigned? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#default_duration_change : Tuple(Int32 | Nil, Int32 | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
-
#default_duration_changed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#default_duration_default : Int32
#default_duration's default value -
#default_duration_present? : Bool
time in milliseconds
-
#default_duration_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#default_duration_was : Int32 | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#default_duration_will_change! : Nil
Include
#default_durationin the set of changed attributes, whether it has changed or not. -
#description : String
#descriptiongetter -
#description=(value : String)
#descriptionsetter -
#description? : String | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. -
#description_assigned? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#description_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
-
#description_changed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#description_default : String
#description's default value - #description_present? : Bool
-
#description_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#description_was : String | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#description_will_change! : Nil
Include
#descriptionin the set of changed attributes, whether it has changed or not. -
#enabled : Bool
#enabledgetter -
#enabled=(value : Bool)
#enabledsetter -
#enabled? : Bool | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. -
#enabled_assigned? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#enabled_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
-
#enabled_changed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#enabled_default : Bool
#enabled's default value - #enabled_present? : Bool
-
#enabled_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#enabled_was : Bool | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#enabled_will_change! : Nil
Include
#enabledin the set of changed attributes, whether it has changed or not. -
#id : String | Nil
#idgetter -
#id=(value : String | Nil)
#idsetter -
#id?
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#id_assigned? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#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
-
#id_changed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#id_default : String | Nil
#id's default value -
#id_present? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#id_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#id_was : String | Nil | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#id_will_change! : Nil
Include
#idin the set of changed attributes, whether it has changed or not. -
#invoke_props
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#name : String
#namegetter -
#name=(value : String)
#namesetter -
#name? : String | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. -
#name_assigned? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#name_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
-
#name_changed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#name_default : String
#name's default value - #name_present? : Bool
-
#name_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#name_was : String | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#name_will_change! : Nil
Include
#namein the set of changed attributes, whether it has changed or not. -
#orientation : PlaceOS::Model::Playlist::Orientation
#orientationgetter -
#orientation=(value : PlaceOS::Model::Playlist::Orientation)
#orientationsetter -
#orientation? : PlaceOS::Model::Playlist::Orientation | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. -
#orientation_assigned? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#orientation_change : Tuple(PlaceOS::Model::Playlist::Orientation | Nil, PlaceOS::Model::Playlist::Orientation | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
-
#orientation_changed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#orientation_default : Orientation
#orientation's default value - #orientation_present? : Bool
-
#orientation_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#orientation_was : PlaceOS::Model::Playlist::Orientation | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#orientation_will_change! : Nil
Include
#orientationin the set of changed attributes, whether it has changed or not. -
#persistent_attributes
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#play_count : Int64
#play_countgetter -
#play_count=(value : Int64)
#play_countsetter -
#play_count? : Int64 | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. -
#play_count_assigned? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#play_count_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
-
#play_count_changed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#play_count_default : Int64
#play_count's default value - #play_count_present? : Bool
-
#play_count_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#play_count_was : Int64 | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#play_count_will_change! : Nil
Include
#play_countin the set of changed attributes, whether it has changed or not. -
#play_through_count : Int64
#play_through_countgetter -
#play_through_count=(value : Int64)
#play_through_countsetter -
#play_through_count? : Int64 | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. -
#play_through_count_assigned? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#play_through_count_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
-
#play_through_count_changed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#play_through_count_default : Int64
#play_through_count's default value - #play_through_count_present? : Bool
-
#play_through_count_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#play_through_count_was : Int64 | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#play_through_count_will_change! : Nil
Include
#play_through_countin the set of changed attributes, whether it has changed or not. -
#primary_key
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#primary_key_hash
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#random : Bool
#randomgetter -
#random=(value : Bool)
#randomsetter -
#random? : Bool | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. -
#random_assigned? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#random_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
-
#random_changed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#random_default : Bool
#random's default value - #random_present? : Bool
-
#random_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#random_was : Bool | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#random_will_change! : Nil
Include
#randomin the set of changed attributes, whether it has changed or not. - #reset_associations
-
#restore_attributes
Reset each attribute to their previous values and clears all changes.
- #revision
- #revisions
-
#run_create_callbacks(&)
Wrap a block with callbacks for the appropriate crud operation
-
#run_destroy_callbacks(&)
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#run_save_callbacks(&)
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#run_update_callbacks(&)
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#schedules : Array(PlaceOS::Model::Playlist::Schedule)
#schedulesgetter -
#schedules=(value : Array(PlaceOS::Model::Playlist::Schedule))
#schedulessetter -
#schedules? : Array(PlaceOS::Model::Playlist::Schedule) | Nil
NOTE use
getter/getter!(notproperty/property!) so that the setter defined later in__create_initializer__is the only setter on the field. -
#schedules_assigned? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#schedules_change : Tuple(Array(PlaceOS::Model::Playlist::Schedule) | Nil, Array(PlaceOS::Model::Playlist::Schedule) | Nil) | Nil
Returns a Tuple of the previous and the current value of an instance variable if it has changed
-
#schedules_changed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#schedules_default : Array(Playlist::Schedule)
#schedules's default value -
#schedules_present? : Bool
when this playlist should play — at least one schedule is required, and each schedule must validate.
-
#schedules_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#schedules_was : Array(PlaceOS::Model::Playlist::Schedule) | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#schedules_will_change! : Nil
Include
#schedulesin the set of changed attributes, whether it has changed or not. - #should_present?(now : Time = Time.utc) : Bool
- #systems
-
#table_name
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#to_items_json(json : JSON::Builder)
Serialize attributes with
:itemsin itsserialization_groupoption -
#to_items_json(io : IO) : Nil
Serialize attributes with
:itemsin itsserialization_groupoption -
#to_items_json : String
Serialize attributes with
:itemsin itsserialization_groupoption -
#to_items_struct
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#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
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#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
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#updated_at_default : Time
#updated_at's default value - #updated_at_present? : Bool
-
#updated_at_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#updated_at_was : Time | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#updated_at_will_change! : Nil
Include
#updated_atin the set of changed attributes, whether it has changed or not. -
#valid_from : Int64 | Nil
#valid_fromgetter -
#valid_from=(value : Int64 | Nil)
#valid_fromsetter -
#valid_from_assigned? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#valid_from_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
-
#valid_from_changed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#valid_from_default : Int64 | Nil
#valid_from's default value -
#valid_from_present? : Bool
conditions that can determine when a playlist is valid
-
#valid_from_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#valid_from_was : Int64 | Nil | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#valid_from_will_change! : Nil
Include
#valid_fromin the set of changed attributes, whether it has changed or not. -
#valid_until : Int64 | Nil
#valid_untilgetter -
#valid_until=(value : Int64 | Nil)
#valid_untilsetter -
#valid_until_assigned? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#valid_until_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
-
#valid_until_changed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#valid_until_default : Int64 | Nil
#valid_until's default value - #valid_until_present? : Bool
-
#valid_until_removed? : Bool
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#valid_until_was : Int64 | Nil | Nil
forward declare so this file can be required before playlist.cr finishes defining the parent class (the
attribute schedules : Array(Playlist::Schedule)line needs Schedule resolved at macro-expansion time). -
#valid_until_will_change! : Nil
Include
#valid_untilin the set of changed attributes, whether it has changed or not. -
#validate_nilability
Validate that all non-nillable fields have values.
- #zones
Instance methods inherited from class PlaceOS::Model::ModelBase
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::ModelBase)
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, 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::ModelBase
new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)new(pull : JSON::PullParser)
new(rs : DB::ResultSet) new
Class methods inherited from class PlaceOS::Model::ModelBase
attributes : Array(Symbol)
attributes,
from_rs(rs : DB::ResultSet)
from_rs,
primary_key
primary_key
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
Constructor Detail
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
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">
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Serialize from a trusted JSON source
Serialize from a trusted YAML source
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Initialize PlaceOS::Model::Playlist 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.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Instance Method Detail
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Assign to multiple attributes.
Assign to multiple attributes via HTTP::Params.
Assign to multiple attributes from a model object
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Assign each field from JSON if field exists in JSON and has changed in model
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #authority_id in the set of changed attributes, whether it has changed or not.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
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.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #created_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.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #default_animation 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.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #default_duration 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.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #description 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.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #enabled in the set of changed attributes, whether it has changed or not.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #id in the set of changed attributes, whether it has changed or not.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
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.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #name in the set of changed attributes, whether it has changed or not.
NOTE use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #orientation in the set of changed attributes, whether it has changed or not.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
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.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #play_count 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.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #play_through_count in the set of changed attributes, whether it has changed or not.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
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.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #random in the set of changed attributes, whether it has changed or not.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
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.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
when this playlist should play — at least one schedule is required, and each schedule must validate. Stored as a JSONB array.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #schedules in the set of changed attributes, whether it has changed or not.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Serialize attributes with :items in its serialization_group option
Serialize attributes with :items in its serialization_group option
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
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.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #updated_at in the set of changed attributes, whether it has changed or not.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #valid_from in the set of changed attributes, whether it has changed or not.
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Returns a Tuple of the previous and the current value of an instance variable if it has changed
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
forward declare so this file can be required before playlist.cr finishes
defining the parent class (the attribute schedules : Array(Playlist::Schedule)
line needs Schedule resolved at macro-expansion time).
Include #valid_until in the set of changed attributes, whether it has changed or not.