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).
PlaceOS::Model::Playlist
Inherits PlaceOS::Model::Timestamps < PlaceOS::Model::ModelBase < PlaceOS::Model::Associations < Neuroplastic < PgORM::Base < PgORM::Validators < PgORM::Table < PgORM::Persistence < PgORM::Associations < ActiveModel::Callbacks < ActiveModel::Validation < ActiveModel::Model < DB::Mappable < DB::Serializable < YAML::Serializable < JSON::Serializable < Reference < Object
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).
Constants
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).
macro level key => type
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
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).
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).
Class methods
Returns all attribute keys.
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 methods
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).
Generate code to apply default values
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).
Uses the YAML parser as JSON is valid YAML
Returns a Hash of all attribute values
Returns a NamedTuple of all attribute values.
authority_id getter
authority_id setter
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).
authority_id's default value
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).
Check if any attributes have changed.
Returns a Hash with all changed attributes.
Serialize the set of changed attributes to JSON.
Serialize the set of changed attributes to 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).
Serialize the set of changed attributes to YAML.
Serialize the set of changed attributes to YAML.
Reset changes for all attributes.
created_at getter
Setters
created_at setter
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).
created_at's default value
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.
default_animation getter
default_animation setter
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.
default_duration getter
default_duration setter
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).
time in milliseconds
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.
description getter
description setter
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.
distribution getter
distribution setter
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).
If the playlist is used to manage individually scheduled items then it should be flagged as a distribution playlist each item will have its own schedule (via item_schedule table)
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 distribution in the set of changed attributes, whether it has changed or not.
enabled getter
enabled setter
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.
id getter
id setter
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).
id's default value
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).
name getter
name setter
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.
orientation getter
orientation setter
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).
play_count getter
play_count setter
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.
play_through_count getter
play_through_count setter
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).
random getter
random setter
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.
Reset each attribute to their previous values and clears all changes.
schedules getter
schedules setter
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 unless a distribution, 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
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).
updated_at getter
updated_at setter
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).
updated_at's default value
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.
valid_from getter
valid_from setter
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).
conditions that can determine when a playlist is valid
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.
valid_until getter
valid_until setter
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.
Validate that all non-nillable fields have values.
Nested types
- PlaceOS::Model::Playlist::Animation
- PlaceOS::Model::Playlist::ChangeFeed(T)
- PlaceOS::Model::Playlist::Checker
- PlaceOS::Model::Playlist::Item
- PlaceOS::Model::Playlist::ItemSchedule
- PlaceOS::Model::Playlist::ItemsResponse
- PlaceOS::Model::Playlist::Orientation
- PlaceOS::Model::Playlist::PrimaryKeyType
- PlaceOS::Model::Playlist::Revision
- PlaceOS::Model::Playlist::Schedule