Class: SpreeCmCommissioner::Route

Inherits:
Base
  • Object
show all
Includes:
RouteType, StoreMetadata
Defined in:
app/models/spree_cm_commissioner/route.rb

Constant Summary

Constants included from RouteType

SpreeCmCommissioner::RouteType::ROUTE_TYPES

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.ransackable_attributes(_auth_object = nil) ⇒ Object



47
48
49
# File 'app/models/spree_cm_commissioner/route.rb', line 47

def self.ransackable_attributes(_auth_object = nil)
  %w[route_type short_name route_name]
end

Instance Method Details

#max_price_for(currency) ⇒ Object



43
44
45
# File 'app/models/spree_cm_commissioner/route.rb', line 43

def max_price_for(currency)
  route_prices.for_currency(currency).find_by(price_type: :max_price)&.price
end

#min_price_for(currency) ⇒ Object



39
40
41
# File 'app/models/spree_cm_commissioner/route.rb', line 39

def min_price_for(currency)
  route_prices.for_currency(currency).find_by(price_type: :min_price)&.price
end

#prices_for(currency) ⇒ Object



35
36
37
# File 'app/models/spree_cm_commissioner/route.rb', line 35

def prices_for(currency)
  route_prices.for_currency(currency)
end

#route_stopsObject



51
52
53
# File 'app/models/spree_cm_commissioner/route.rb', line 51

def route_stops
  Transit::RouteStopCollection.from_hash(read_attribute(:route_stops))
end

#route_stops=(value) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
# File 'app/models/spree_cm_commissioner/route.rb', line 55

def route_stops=(value)
  if value.is_a?(Transit::RouteStopCollection)
    @route_stops = value
    self[:route_stops] = value.to_h
  elsif value.is_a?(Array)
    @route_stops = Transit::RouteStopCollection.from_hash(value)
    self[:route_stops] = @route_stops.to_h
  else
    raise ArgumentError, 'route_stops must be an Array or RouteStopCollection'
  end
end