# frozen_string_literal: true module SchedulePipeline module Models class ScheduleProcessMsg attr_reader :vendor, :player, :vendor_schedule def initialize(vendor, player, schedule) @vendor = vendor @player = player @vendor_schedule = schedule.with_indifferent_access end def push(queue) queue.push(to_hash) end def to_hash { vendor: @vendor, player: @player, vendor_schedule: @vendor_schedule } end def self.from_hash(input) self.new( input[:vendor], input[:player], input[:vendor_schedule], ) end end end end