class

PlaceOS::Model::Playlist::Item

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

Constants

CALLBACKS = { before_save: [] of Nil, after_save: [] of Nil, before_create: [do self.created_at = self.updated_at = Time.utc end] of Nil, after_create: [] of Nil, before_update: [do self.updated_at = Time.utc end] of Nil, after_update: [:update_playlists] of Nil, before_destroy: [:cleanup_playlists] of Nil, after_destroy: [] of Nil, }
Log = ::Log.for(self)
PRIMARY_KEY_TYPES = {:id => (String | Nil)} of Nil => Nil

macro level key => type

PRIMARY_KEYS = [{:id}]

Constructors

from_json(string_or_io : String | IO, trusted : Bool = false) : self
from_json(string_or_io : String | IO, root : String, trusted : Bool = false) : self

Deserializes the given JSON in string_or_io into an instance of self, assuming the JSON consists of an JSON object with key root, and whose value is the value to deserialize. Will not deserialise from fields with mass_assign: false

class User < ActiveModel::Model
  attribute name : String
  attribute google_id : UUID, mass_assign: false
end

User.from_json(%({"main": {"name": "Jason", "google_id": "f6f70bfb-c882-446d-8758-7ce47db39620"}}), root: "main") # => #<User:0x103131b20 @name="Jason">
from_trusted_json(string_or_io : String | IO, root : String) : self
from_trusted_json(string_or_io : String | IO) : self

Serialize from a trusted JSON source

from_trusted_yaml(string_or_io : String | IO) : self

Serialize from a trusted YAML source

from_yaml(string_or_io : String | IO, trusted : Bool = false) : self
new(rs : DB::ResultSet)
new(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, tags : Set(String) | ActiveModel::Model::None = ::ActiveModel::Model::None.new, authority_id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, video_length : Int32 | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, start_time : Int32 | ActiveModel::Model::None = ::ActiveModel::Model::None.new, play_time : Int32 | ActiveModel::Model::None = ::ActiveModel::Model::None.new, animation : PlaceOS::Model::Playlist::Animation | ActiveModel::Model::None = ::ActiveModel::Model::None.new, media_type : PlaceOS::Model::Playlist::Item::MediaType | ActiveModel::Model::None = ::ActiveModel::Model::None.new, orientation : PlaceOS::Model::Playlist::Orientation | ActiveModel::Model::None = ::ActiveModel::Model::None.new, media_uri : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, media_id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, thumbnail_id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, plugin_id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, plugin_params : Hash(String, JSON::Any) | ActiveModel::Model::None = ::ActiveModel::Model::None.new, play_count : Int64 | 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, id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new)

Initialize PlaceOS::Model::Playlist::Item from HTTP::Params.

Class methods

attributes

Returns all attribute keys.

by_authority_id(id)

Look up instances of this model dependent on the foreign key

Source
by_media_id(id)

Look up instances of this model dependent on the foreign key

Source
by_plugin_id(id)

Look up instances of this model dependent on the foreign key

Source
by_thumbnail_id(id)

Look up instances of this model dependent on the foreign key

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

Changefeed at row (if id passed) or whole table level. Returns a ChangeFeed instance which can be used to invoke async callbacks via on or use blocking Iterator via each method.

elastic
from_rs(__temp_2004 : DB::ResultSet)
items(item_ids : Array(String)) : Array(Playlist::Item)
Source
on_error(err : Exception | IO::Error)
primary_key

Base class for all Engine models

Source
table_name
update_counts(metrics : Hash(String, Int32)) : Int64
Source
with_tag(tag : String)
Source

Instance methods

__authority
__authority=(__authority : Authority | Nil)
__media
__media=(__media : Upload | Nil)
__plugin

plugin data for playback

__plugin=(__plugin : SignagePlugin | Nil)

plugin data for playback

__thumbnail
__thumbnail=(__thumbnail : Upload | Nil)
after_create

Base class for all Engine models

after_destroy

Base class for all Engine models

after_initialize(trusted : Bool)
after_save

Base class for all Engine models

after_update

Base class for all Engine models

animation

animation getter

animation setter

animation?

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.

animation_assigned?
animation_change

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

animation_changed?
animation_default

animation's default value

Source
animation_present?
animation_removed?
animation_was
animation_will_change!

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

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, tags : Set(String) | Missing = Missing, authority_id : String | Nil | Missing = Missing, video_length : Int32 | Nil | Missing = Missing, start_time : Int32 | Missing = Missing, play_time : Int32 | Missing = Missing, animation : PlaceOS::Model::Playlist::Animation | Missing = Missing, media_type : PlaceOS::Model::Playlist::Item::MediaType | Missing = Missing, orientation : PlaceOS::Model::Playlist::Orientation | Missing = Missing, media_uri : String | Nil | Missing = Missing, media_id : String | Nil | Missing = Missing, thumbnail_id : String | Nil | Missing = Missing, plugin_id : String | Nil | Missing = Missing, plugin_params : Hash(String, JSON::Any) | Missing = Missing, play_count : Int64 | Missing = Missing, valid_from : Int64 | Nil | Missing = Missing, valid_until : Int64 | Nil | 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::Item)

Assign to multiple attributes from a model object

assign_attributes_from_json(json, root : String)
assign_attributes_from_json(json)
assign_attributes_from_trusted_json(json, root : String)
assign_attributes_from_trusted_json(json)

Assign each field from JSON if field exists in JSON and has changed in model

assign_attributes_from_trusted_yaml(yaml)
assign_attributes_from_yaml(yaml)

Uses the YAML parser as JSON is valid YAML

attributes

Returns a Hash of all attribute values

attributes_tuple

Returns a NamedTuple of all attribute values.

authority

Retrieves the parent relationship

Source
authority!
Source
authority=(parent : Authority)

Sets the parent relationship

Source
authority_id

authority_id getter

authority_id=(value : String | Nil)

authority_id setter

authority_id_assigned?
authority_id_change

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

authority_id_changed?
authority_id_default

authority_id's default value

authority_id_present?
authority_id_removed?
authority_id_was
authority_id_will_change!

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

before_create

Base class for all Engine models

before_destroy

Base class for all Engine models

before_save

Base class for all Engine models

before_update

Base class for all Engine models

changed?

Check if any attributes have changed.

changed_attributes

Returns a Hash with all changed attributes.

changed_json(io : IO) : Nil

Serialize the set of changed attributes to JSON.

changed_json

Serialize the set of changed attributes to JSON.

changed_persist_attributes
changed_yaml(io : IO) : Nil

Serialize the set of changed attributes to YAML.

changed_yaml

Serialize the set of changed attributes to YAML.

clear_changes_information

Reset changes for all attributes.

created_at

created_at getter

created_at=(value : Time)

Setters created_at setter

created_at?

NOTE: use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.

created_at_assigned?
created_at_change

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

created_at_changed?
created_at_default

created_at's default value

created_at_present?
created_at_removed?
created_at_was
created_at_will_change!

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

description

description getter

description=(value : String)

description setter

description?

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.

description_assigned?
description_change

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

description_changed?
description_default

description's default value

Source
description_present?
description_removed?
description_was
description_will_change!

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

id

id getter

id=(value : String | Nil)

id setter

id?
id_assigned?
id_change

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

id_changed?
id_default

id's default value

id_present?
id_removed?
id_was
id_will_change!

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

invoke_props

Base class for all Engine models

media

Retrieves the parent relationship

Source
media!
Source
media=(parent : Upload)

Sets the parent relationship

Source
media_id

media_id getter

media_id=(value : String | Nil)

media_id setter

media_id_assigned?
media_id_change

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

media_id_changed?
media_id_default

media_id's default value

media_id_present?
media_id_removed?
media_id_was
media_id_will_change!

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

media_type

media_type getter

media_type setter

media_type?

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.

media_type_assigned?
media_type_change

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

media_type_changed?
media_type_default

media_type's default value

Source
media_type_present?

media details

media_type_removed?
media_type_was
media_type_will_change!

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

media_uri

media_uri getter

media_uri=(value : String | Nil)

media_uri setter

media_uri_assigned?
media_uri_change

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

media_uri_changed?
media_uri_default

media_uri's default value

Source
media_uri_present?

URI required for media hosted externally

media_uri_removed?
media_uri_was
media_uri_will_change!

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

name

name getter

name=(value : String)

name setter

name?

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.

name_assigned?
name_change

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

name_changed?
name_default

name's default value

Source
name_present?
name_removed?
name_was
name_will_change!

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

orientation

orientation getter

orientation setter

orientation?

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.

orientation_assigned?
orientation_change

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

orientation_changed?
orientation_default

orientation's default value

Source
orientation_present?
orientation_removed?
orientation_was
orientation_will_change!

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

persistent_attributes

Returns a Hash of all attributes that can be persisted.

play_count

play_count getter

play_count=(value : Int64)

play_count setter

play_count?

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.

play_count_assigned?
play_count_change

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

play_count_changed?
play_count_default

play_count's default value

Source
play_count_present?

other metadata

play_count_removed?
play_count_was
play_count_will_change!

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

play_time

play_time getter

play_time=(value : Int32)

play_time setter

play_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.

play_time_assigned?
play_time_change

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

play_time_changed?
play_time_default

play_time's default value

Source
play_time_present?
play_time_removed?
play_time_was
play_time_will_change!

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

plugin

Retrieves the parent relationship

Source
plugin!

plugin data for playback

Source
plugin=(parent : SignagePlugin)

Sets the parent relationship

Source
plugin_id

plugin_id getter

plugin_id=(value : String | Nil)

plugin_id setter

plugin_id_assigned?
plugin_id_change

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

plugin_id_changed?
plugin_id_default

plugin_id's default value

plugin_id_present?

plugin data for playback

plugin_id_removed?
plugin_id_was
plugin_id_will_change!

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

plugin_params

plugin_params getter

plugin_params=(value : Hash(String, JSON::Any))

plugin_params setter

plugin_params?

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.

plugin_params_assigned?
plugin_params_change

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

plugin_params_changed?
plugin_params_default

plugin_params's default value

Source
plugin_params_present?
plugin_params_removed?
plugin_params_was
plugin_params_will_change!

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

primary_key

Base class for all Engine models

Source
primary_key_hash
reset_associations

plugin data for playback

Source
restore_attributes

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

start_time

start_time getter

start_time=(value : Int32)

start_time setter

start_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.

start_time_assigned?
start_time_change

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

start_time_changed?
start_time_default

start_time's default value

Source
start_time_present?
start_time_removed?
start_time_was
start_time_will_change!

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

table_name
tags

tags getter

tags=(value : Set(String))

tags setter

tags?

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.

tags_assigned?
tags_change

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

tags_changed?
tags_default

tags's default value

Source
tags_present?
tags_removed?
tags_was
tags_will_change!

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

thumbnail

Retrieves the parent relationship

Source
thumbnail!
Source
thumbnail=(parent : Upload)

Sets the parent relationship

Source
thumbnail_id

thumbnail_id getter

thumbnail_id=(value : String | Nil)

thumbnail_id setter

thumbnail_id_assigned?
thumbnail_id_change

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

thumbnail_id_changed?
thumbnail_id_default

thumbnail_id's default value

thumbnail_id_present?
thumbnail_id_removed?
thumbnail_id_was
thumbnail_id_will_change!

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

update_playlists
Source
updated_at

updated_at getter

updated_at=(value : Time)

updated_at setter

updated_at?

NOTE: use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.

updated_at_assigned?
updated_at_change

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

updated_at_changed?
updated_at_default

updated_at's default value

updated_at_present?
updated_at_removed?
updated_at_was
updated_at_will_change!

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

valid_from

valid_from getter

valid_from=(value : Int64 | Nil)

valid_from setter

valid_from_assigned?
valid_from_change

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

valid_from_changed?
valid_from_default

valid_from's default value

Source
valid_from_present?
valid_from_removed?
valid_from_was
valid_from_will_change!

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

valid_until

valid_until getter

valid_until=(value : Int64 | Nil)

valid_until setter

valid_until_assigned?
valid_until_change

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

valid_until_changed?
valid_until_default

valid_until's default value

Source
valid_until_present?
valid_until_removed?
valid_until_was
valid_until_will_change!

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

validate_nilability

Validate that all non-nillable fields have values.

video_length

video_length getter

video_length=(value : Int32 | Nil)

video_length setter

video_length_assigned?
video_length_change

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

video_length_changed?
video_length_default

video_length's default value

Source
video_length_present?

times in milliseconds (start time is for videos)

video_length_removed?
video_length_was
video_length_will_change!

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

Nested types