class PlaceOS::Model::Playlist::Item

Included Modules

Defined in:

placeos-models/playlist/item.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: [:update_playlists] of Nil, before_destroy: [:cleanup_playlists] of Nil, after_destroy: [] of Nil}
Log = ::Log.for(self)

Constructors

Class Method Summary

Instance Method Summary

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, 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, auto_generate_id : Bool auto_generate_id, from_rs(rs : DB::ResultSet) from_rs, primary_key : Symbol 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

def self.from_json(string_or_io : String | IO, trusted : Bool = false) : self #

def 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">

def self.from_trusted_json(string_or_io : String | IO, root : String) : self #

def self.from_trusted_json(string_or_io : String | IO) : self #

Serialize from a trusted JSON source


def self.from_trusted_yaml(string_or_io : String | IO) : self #

Serialize from a trusted YAML source


def self.from_yaml(string_or_io : String | IO, trusted : Bool = false) : self #

def self.new(ctx : YAML::ParseContext, node : YAML::Nodes::Node) #

def self.new(pull : JSON::PullParser) #

def self.new(rs : DB::ResultSet) #

def self.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, 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, 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) #

def self.new(params : HTTP::Params | Hash(String, String) | Tuple(String, String)) #

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


Class Method Detail

def self.attributes : Array(Symbol) #

Returns all attribute keys.


def self.auto_generate_id : Bool #

def self.by_authority_id(id) #

Look up instances of this model dependent on the foreign key


def self.by_media_id(id) #

Look up instances of this model dependent on the foreign key


def self.by_thumbnail_id(id) #

Look up instances of this model dependent on the foreign key


def self.changes(id : PrimaryKeyType = 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.


def self.elastic #

def self.from_rs(__temp_695 : DB::ResultSet) #

def self.items(item_ids : Array(String)) : Array(Playlist::Item) #

def self.on_error(err : Exception | IO::Error) #

def self.primary_key : Symbol #

def self.table_name #

def self.update_counts(metrics : Hash(String, Int32)) : Int64 #

Instance Method Detail

def __authority : Authority | Nil #

def __authority=(__authority : Authority | Nil) #

def __media : Upload | Nil #

def __media=(__media : Upload | Nil) #

def __thumbnail : Upload | Nil #

def __thumbnail=(__thumbnail : Upload | Nil) #

def after_create #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def after_destroy #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def after_initialize(trusted : Bool) #

def after_save #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def after_update #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


#animation getter


def animation=(value : PlaceOS::Model::Playlist::Animation) #

#animation setter


def animation? : PlaceOS::Model::Playlist::Animation | Nil #

def animation_assigned? : Bool #

def 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


def animation_changed? : Bool #

def animation_default : Animation #

#animation's default value


def animation_present? : Bool #

def animation_was : PlaceOS::Model::Playlist::Animation | Nil #

def animation_will_change! : Nil #

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


def apply_defaults #

Generate code to apply default values


def 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, 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, 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.


def assign_attributes(params : HTTP::Params | Hash(String, String) | Tuple(String, String)) #

Assign to mulitple attributes via HTTP::Params.


def assign_attributes(model : PlaceOS::Model::Playlist::Item) #

Assign to multiple attributes from a model object


def assign_attributes_from_json(json, root : String) #

def assign_attributes_from_json(json) #

def assign_attributes_from_trusted_json(json, root : String) #

def assign_attributes_from_trusted_json(json) #

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


def assign_attributes_from_trusted_yaml(yaml) #

def assign_attributes_from_yaml(yaml) #

Uses the YAML parser as JSON is valid YAML


def attributes #

Returns a Hash of all attribute values


def attributes_tuple #

Returns a NamedTuple of all attribute values.


def authority : Authority | Nil #

Retrieves the parent relationship


def authority! : Authority #

def authority=(parent : Authority) #

Sets the parent relationship


def authority_id : String | Nil #

#authority_id getter


def authority_id=(value : String | Nil) #

#authority_id setter


def authority_id_assigned? : Bool #

def 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


def authority_id_changed? : Bool #

def authority_id_default : String | Nil #

#authority_id's default value


def authority_id_present? : Bool #

def authority_id_was : String | Nil | Nil #

def authority_id_will_change! : Nil #

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


def before_create #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def before_destroy #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def before_save #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def before_update #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def changed? #

Check if any attributes have changed.


def changed_attributes #

Returns a Hash with all changed attributes.


def changed_json(io : IO) : Nil #

Serialize the set of changed attributes to JSON.


def changed_json : String #

Serialize the set of changed attributes to JSON.


def changed_persist_attributes #

def changed_yaml(io : IO) : Nil #

Serialize the set of changed attributes to YAML.


def changed_yaml : String #

Serialize the set of changed attributes to YAML.


def clear_changes_information #

Reset changes for all attributes.


def created_at : Time #

#created_at getter


def created_at=(value : Time) #

Setters #created_at setter


def created_at? : Time | Nil #

def created_at_assigned? : Bool #

def 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


def created_at_changed? : Bool #

def created_at_default : Time #

#created_at's default value


def created_at_present? : Bool #

def created_at_was : Time | Nil #

def created_at_will_change! : Nil #

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


def description : String #

#description getter


def description=(value : String) #

#description setter


def description? : String | Nil #

def description_assigned? : Bool #

def 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


def description_changed? : Bool #

def description_default : String #

#description's default value


def description_present? : Bool #

def description_was : String | Nil #

def description_will_change! : Nil #

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


def id : String | Nil #

#id getter


def id=(value : String | Nil) #

#id setter


def id? : String | Nil | Nil #
Description copied from class PgORM::Base

Same as #id but may return nil when the record hasn't been saved instead of raising.


def id_assigned? : Bool #

def 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


def id_changed? : Bool #

def id_default : String | Nil #

#id's default value


def id_present? : Bool #

def id_was : String | Nil | Nil #

def id_will_change! : Nil #

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


def invoke_props #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def media : Upload | Nil #

Retrieves the parent relationship


def media! : Upload #

def media=(parent : Upload) #

Sets the parent relationship


def media_id : String | Nil #

#media_id getter


def media_id=(value : String | Nil) #

#media_id setter


def media_id_assigned? : Bool #

def media_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


def media_id_changed? : Bool #

def media_id_default : String | Nil #

#media_id's default value


def media_id_present? : Bool #

def media_id_was : String | Nil | Nil #

def media_id_will_change! : Nil #

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


#media_type getter


def media_type=(value : PlaceOS::Model::Playlist::Item::MediaType) #

#media_type setter


media details


def media_type_assigned? : Bool #

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


def media_type_changed? : Bool #

def media_type_default : MediaType #

#media_type's default value


def media_type_present? : Bool #

media details


def media_type_was : PlaceOS::Model::Playlist::Item::MediaType | Nil #

def media_type_will_change! : Nil #

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


def media_uri : String | Nil #

#media_uri getter


def media_uri=(value : String | Nil) #

#media_uri setter


def media_uri_assigned? : Bool #

def media_uri_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


def media_uri_changed? : Bool #

def media_uri_default : String | Nil #

#media_uri's default value


def media_uri_present? : Bool #

URI required for media hosted externally


def media_uri_was : String | Nil | Nil #

def media_uri_will_change! : Nil #

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


def name : String #

#name getter


def name=(value : String) #

#name setter


def name? : String | Nil #

def name_assigned? : Bool #

def 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


def name_changed? : Bool #

def name_default : String #

#name's default value


def name_present? : Bool #

def name_was : String | Nil #

def name_will_change! : Nil #

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


#orientation getter


def orientation=(value : PlaceOS::Model::Playlist::Orientation) #

#orientation setter


def orientation? : PlaceOS::Model::Playlist::Orientation | Nil #

def orientation_assigned? : Bool #

def 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


def orientation_changed? : Bool #

def orientation_default : Orientation #

#orientation's default value


def orientation_present? : Bool #

def orientation_was : PlaceOS::Model::Playlist::Orientation | Nil #

def orientation_will_change! : Nil #

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


def persistent_attributes #

Returns a Hash of all attributes that can be persisted.


def play_count : Int64 #

#play_count getter


def play_count=(value : Int64) #

#play_count setter


def play_count? : Int64 | Nil #

other metadata


def play_count_assigned? : Bool #

def 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


def play_count_changed? : Bool #

def play_count_default : Int64 #

#play_count's default value


def play_count_present? : Bool #

other metadata


def play_count_was : Int64 | Nil #

def play_count_will_change! : Nil #

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


def play_time : Int32 #

#play_time getter


def play_time=(value : Int32) #

#play_time setter


def play_time? : Int32 | Nil #

def play_time_assigned? : Bool #

def play_time_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


def play_time_changed? : Bool #

def play_time_default : Int32 #

#play_time's default value


def play_time_present? : Bool #

def play_time_was : Int32 | Nil #

def play_time_will_change! : Nil #

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


def reset_associations #

def restore_attributes #

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


def run_create_callbacks(&) #

Wrap a block with callbacks for the appropriate crud operation


def run_destroy_callbacks(&) #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def run_save_callbacks(&) #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def run_update_callbacks(&) #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def start_time : Int32 #

#start_time getter


def start_time=(value : Int32) #

#start_time setter


def start_time? : Int32 | Nil #

def start_time_assigned? : Bool #

def start_time_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


def start_time_changed? : Bool #

def start_time_default : Int32 #

#start_time's default value


def start_time_present? : Bool #

def start_time_was : Int32 | Nil #

def start_time_will_change! : Nil #

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


def table_name #

def thumbnail : Upload | Nil #

Retrieves the parent relationship


def thumbnail! : Upload #

def thumbnail=(parent : Upload) #

Sets the parent relationship


def thumbnail_id : String | Nil #

#thumbnail_id getter


def thumbnail_id=(value : String | Nil) #

#thumbnail_id setter


def thumbnail_id_assigned? : Bool #

def thumbnail_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


def thumbnail_id_changed? : Bool #

def thumbnail_id_default : String | Nil #

#thumbnail_id's default value


def thumbnail_id_present? : Bool #

def thumbnail_id_was : String | Nil | Nil #

def thumbnail_id_will_change! : Nil #

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


def update_playlists #

def updated_at : Time #

#updated_at getter


def updated_at=(value : Time) #

#updated_at setter


def updated_at? : Time | Nil #

def updated_at_assigned? : Bool #

def 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


def updated_at_changed? : Bool #

def updated_at_default : Time #

#updated_at's default value


def updated_at_present? : Bool #

def updated_at_was : Time | Nil #

def updated_at_will_change! : Nil #

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


def valid_from : Int64 | Nil #

#valid_from getter


def valid_from=(value : Int64 | Nil) #

#valid_from setter


def valid_from_assigned? : Bool #

def 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


def valid_from_changed? : Bool #

def valid_from_default : Int64 | Nil #

#valid_from's default value


def valid_from_present? : Bool #

def valid_from_was : Int64 | Nil | Nil #

def valid_from_will_change! : Nil #

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


def valid_until : Int64 | Nil #

#valid_until getter


def valid_until=(value : Int64 | Nil) #

#valid_until setter


def valid_until_assigned? : Bool #

def 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


def valid_until_changed? : Bool #

def valid_until_default : Int64 | Nil #

#valid_until's default value


def valid_until_present? : Bool #

def valid_until_was : Int64 | Nil | Nil #

def valid_until_will_change! : Nil #

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


def validate_nilability #

Validate that all non-nillable fields have values.


def video_length : Int32 | Nil #

#video_length getter


def video_length=(value : Int32 | Nil) #

#video_length setter


def video_length_assigned? : Bool #

def video_length_change : Tuple(Int32 | Nil | Nil, Int32 | Nil | Nil) | Nil #

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


def video_length_changed? : Bool #

def video_length_default : Int32 | Nil #

#video_length's default value


def video_length_present? : Bool #

times in milliseconds (start time is for videos)


def video_length_was : Int32 | Nil | Nil #

def video_length_will_change! : Nil #

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