require 'date' require_relative '../resource' require_relative '../collection' module Tickethub class Supplier::Product < Resource path '/supplier/products' require_relative '../contact' require_relative '../address' require_relative 'booking' require_relative 'voucher' require_relative 'ticket' require_relative 'option' require_relative 'tier' require_relative 'variant' require_relative 'season' require_relative 'rate' require_relative 'coupon' require_relative 'reseller' require_relative 'question' require_relative 'answer' require_relative 'tax' collection :bookings, Supplier::Booking collection :vouchers, Supplier::Voucher collection :tickets, Supplier::Ticket collection :tiers, Supplier::Tier collection :variants, Supplier::Variant collection :seasons, Supplier::Season collection :coupons, Supplier::Coupon collection :rates, Supplier::Rate collection :questions, Supplier::Question collection :answers, Supplier::Answer collection :taxes, Supplier::Tax collection :options, Supplier::Option do def dates(from, to, booking = {}) @endpoint[:dates].get(from: from, to: to, booking: booking).decoded end end association :contact, Tickethub::Contact association :address, Tickethub::Address attribute :time_zone, type: :timezone attribute :currency, type: :currency def resellers Collection.new @endpoint['/supplier/resellers'], Supplier::Reseller, filters: { products: [id] } end def settings @endpoint[:settings].get.decoded end end end