# frozen_string_literal: true module SchedulePipeline module Models class Schedule attr_reader :name, :vendor, :player, :start_time, :items def initialize(name, vendor, player, start_time, items) @name = name @vendor = vendor @player = player @start_time = start_time @items = items end def to_hash { name: name, vendor: vendor, player: player, start_time: start_time, items: items.collect(&:to_hash) }.with_indifferent_access end def self.from_hash(input) self.new( input[:name], input[:vendor], input[:player], input[:start_time], input[:items].collect { |i| ScheduleItem.from_hash(i) } ) end end end end