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 'ticket' require_relative 'purchase' require_relative 'extra' require_relative 'fee' 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' require_relative 'channel' require_relative 'scan' require_relative 'import' require_relative 'party' require_relative 'weather' collection :bookings, Supplier::Booking collection :tickets, Supplier::Ticket collection :purchases, Supplier::Purchase collection :extras, Supplier::Extra collection :fees, Supplier::Fee 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 :scans, Supplier::Scan collection :channels, Supplier::Channel collection :imports, Supplier::Import collection :parties, Supplier::Party collection :weather, Supplier::Weather 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 attribute :created_at, type: :datetime attribute :updated_at, type: :datetime end end