38 lines
837 B
Ruby
38 lines
837 B
Ruby
# 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
|