Class: SpreeCmCommissioner::VariantOptions

Inherits:
Object
  • Object
show all
Defined in:
app/models/spree_cm_commissioner/variant_options.rb

Constant Summary collapse

DEFAULT_KIDS_AGE_MAX =
17
DEFAULT_NUMBER_OF_ADULTS =
1

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(variant) ⇒ VariantOptions



5
6
7
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 5

def initialize(variant)
  @variant = variant
end

Instance Attribute Details

#variantObject (readonly)

Returns the value of attribute variant.



3
4
5
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 3

def variant
  @variant
end

Instance Method Details

#allowed_extra_adultsObject



108
109
110
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 108

def allowed_extra_adults
  @allowed_extra_adults ||= option_value_name_for(option_type_name: 'allowed-extra-adults')&.to_i || 0
end

#allowed_extra_kidsObject



112
113
114
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 112

def allowed_extra_kids
  @allowed_extra_kids ||= option_value_name_for(option_type_name: 'allowed-extra-kids')&.to_i || 0
end

#bib_display_prefix?Boolean



124
125
126
127
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 124

def bib_display_prefix?
  @bib_display_prefix ||= option_value_name_for(option_type_name: 'bib-display-prefix')&.to_i || 1
  @bib_display_prefix == 1
end

#bib_pre_generation_on_create?Boolean



129
130
131
132
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 129

def bib_pre_generation_on_create?
  @bib_pre_generation_on_create ||= option_value_name_for(option_type_name: 'bib-pre-generation-on-create')&.to_i || 0
  @bib_pre_generation_on_create == 1
end

#bib_prefixObject



116
117
118
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 116

def bib_prefix
  @bib_prefix ||= option_value_name_for(option_type_name: 'bib-prefix')
end

#bib_zerofillObject



120
121
122
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 120

def bib_zerofill
  @bib_zerofill ||= option_value_name_for(option_type_name: 'bib-zerofill')&.to_i || 3
end

#delivery_optionObject



80
81
82
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 80

def delivery_option
  @delivery_option ||= option_value_name_for(option_type_name: 'delivery-option')
end

#due_dateObject



88
89
90
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 88

def due_date
  @due_date ||= option_value_name_for(option_type_name: 'due-date')&.to_i
end

#duration_in_hoursObject



54
55
56
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 54

def duration_in_hours
  @duration_in_hours ||= option_value_name_for(option_type_name: 'duration-in-hours')&.to_i
end

#duration_in_minutesObject



58
59
60
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 58

def duration_in_minutes
  @duration_in_minutes ||= option_value_name_for(option_type_name: 'duration-in-minutes')&.to_i
end

#duration_in_secondsObject



62
63
64
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 62

def duration_in_seconds
  @duration_in_seconds ||= option_value_name_for(option_type_name: 'duration-in-seconds')&.to_i
end

#end_dateObject



29
30
31
32
33
34
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 29

def end_date
  @end_date ||= begin
    date = option_value_name_for(option_type_name: 'end-date')
    Time.zone.parse(date) if date.present?
  end
end

#end_timeObject



43
44
45
46
47
48
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 43

def end_time
  @end_time ||= begin
    time = option_value_name_for(option_type_name: 'end-time')
    Time.zone.parse(time) if time.present?
  end
end

#kids_age_maxObject



104
105
106
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 104

def kids_age_max
  @kids_age_max ||= option_value_name_for(option_type_name: 'kids-age-max')&.to_i || DEFAULT_KIDS_AGE_MAX
end

#locationObject



18
19
20
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 18

def location
  @location ||= option_value_name_for(option_type_name: 'location')&.to_i
end

#max_quantity_per_orderObject



84
85
86
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 84

def max_quantity_per_order
  @max_quantity_per_order ||= option_value_name_for(option_type_name: 'max-quantity-per-order')&.to_i
end

#monthObject



92
93
94
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 92

def month
  @month ||= option_value_name_for(option_type_name: 'month')&.to_i
end

#number_of_adultsObject



96
97
98
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 96

def number_of_adults
  @number_of_adults ||= option_value_name_for(option_type_name: 'number-of-adults')&.to_i || DEFAULT_NUMBER_OF_ADULTS
end

#number_of_guestsObject

can consider as customers.



143
144
145
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 143

def number_of_guests
  number_of_adults + number_of_kids
end

#number_of_kidsObject



100
101
102
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 100

def number_of_kids
  @number_of_kids ||= option_value_name_for(option_type_name: 'number-of-kids')&.to_i || 0
end

#option_value_name_for(option_type_name: nil) ⇒ Object

these method read option value from public metadata first if no public metadata found, it will find in db.



14
15
16
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 14

def option_value_name_for(option_type_name: nil)
  variant.option_value_name_for(option_type_name: option_type_name)
end

#payment_optionObject



76
77
78
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 76

def payment_option
  @payment_option ||= option_value_name_for(option_type_name: 'payment-option')
end

#reminder_in_hoursObject



50
51
52
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 50

def reminder_in_hours
  @reminder_in_hours ||= option_value_name_for(option_type_name: 'reminder-in-hours')&.to_i
end

#seat_number_layoutsObject



138
139
140
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 138

def seat_number_layouts
  @seat_number_layouts ||= option_value_name_for(option_type_name: 'seat-number-layouts')&.split(',')
end

#seat_number_positionsObject



134
135
136
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 134

def seat_number_positions
  @seat_number_positions ||= option_value_name_for(option_type_name: 'seat-number-positions')&.split(',')
end

#start_dateObject



22
23
24
25
26
27
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 22

def start_date
  @start_date ||= begin
    date = option_value_name_for(option_type_name: 'start-date')
    Time.zone.parse(date) if date.present?
  end
end

#start_timeObject



36
37
38
39
40
41
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 36

def start_time
  @start_time ||= begin
    time = option_value_name_for(option_type_name: 'start-time')
    Time.zone.parse(time) if time.present?
  end
end

#total_duration_in_secondsObject



66
67
68
69
70
71
72
73
74
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 66

def total_duration_in_seconds
  total_duration_in_seconds = 0

  total_duration_in_seconds += duration_in_hours * 3600 if duration_in_hours.present?
  total_duration_in_seconds += duration_in_minutes * 60 if duration_in_minutes.present?
  total_duration_in_seconds += duration_in_seconds if duration_in_seconds.present?

  total_duration_in_seconds
end