spree_cm_commissioner 2.1.3 → 2.1.4.pre.pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/app/controllers/spree/api/v2/storefront/seat_layouts_controller.rb +36 -0
  4. data/app/{models/concerns → interactors}/spree_cm_commissioner/guest_seat_updater.rb +1 -1
  5. data/app/interactors/spree_cm_commissioner/trip_clone_creator.rb +1 -0
  6. data/app/interactors/spree_cm_commissioner/variant_block_updater.rb +1 -0
  7. data/app/mailers/spree_cm_commissioner/guest_mailer.rb +18 -0
  8. data/app/models/concerns/spree_cm_commissioner/order_state_machine.rb +14 -0
  9. data/app/models/spree_cm_commissioner/block.rb +3 -5
  10. data/app/models/spree_cm_commissioner/check_in.rb +7 -1
  11. data/app/models/spree_cm_commissioner/check_in_rule.rb +6 -0
  12. data/app/models/spree_cm_commissioner/check_in_session.rb +16 -0
  13. data/app/models/spree_cm_commissioner/guest.rb +26 -1
  14. data/app/models/spree_cm_commissioner/import.rb +3 -1
  15. data/app/models/spree_cm_commissioner/line_item_decorator.rb +2 -1
  16. data/app/models/spree_cm_commissioner/seat_layout.rb +17 -2
  17. data/app/models/spree_cm_commissioner/seat_section.rb +1 -1
  18. data/app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb +2 -2
  19. data/app/models/spree_cm_commissioner/taxon_decorator.rb +13 -0
  20. data/app/models/spree_cm_commissioner/trip.rb +37 -5
  21. data/app/models/spree_cm_commissioner/user_decorator.rb +3 -0
  22. data/app/models/spree_cm_commissioner/variant_decorator.rb +4 -3
  23. data/app/models/spree_cm_commissioner/vehicle.rb +11 -0
  24. data/app/serializers/spree/v2/storefront/product_serializer_decorator.rb +5 -0
  25. data/app/serializers/spree/v2/storefront/taxon_serializer_decorator.rb +3 -0
  26. data/app/serializers/spree/v2/storefront/user_serializer_decorator.rb +1 -1
  27. data/app/serializers/spree_cm_commissioner/v2/storefront/block_serializer.rb +1 -1
  28. data/app/serializers/spree_cm_commissioner/v2/storefront/trip_serializer.rb +1 -0
  29. data/app/serializers/spree_cm_commissioner/v2/storefront/trip_variant_serializer.rb +0 -2
  30. data/app/serializers/spree_cm_commissioner/v2/storefront/trip_vehicle_serializer.rb +0 -2
  31. data/app/services/spree_cm_commissioner/imports/create_order_service.rb +27 -12
  32. data/app/views/spree/admin/shared/_vectors_option_type_tabs.html.erb +8 -2
  33. data/app/views/spree/admin/vectors/icons/index.html.erb +11 -7
  34. data/app/views/spree_cm_commissioner/guest_mailer/_greeting.html.erb +14 -0
  35. data/app/views/spree_cm_commissioner/guest_mailer/_mailer_stylesheets.html.erb +213 -0
  36. data/app/views/spree_cm_commissioner/guest_mailer/send_ticket_to_guest.html.erb +15 -0
  37. data/app/views/spree_cm_commissioner/layouts/guest_mailer.html.erb +35 -0
  38. data/config/locales/en.yml +2 -0
  39. data/config/locales/km.yml +2 -0
  40. data/config/routes.rb +1 -2
  41. data/db/migrate/20250827022503_create_spree_cm_commissioner_sessions.rb +14 -0
  42. data/db/migrate/20250827022757_create_spree_cm_commissioner_check_in_rules.rb +13 -0
  43. data/db/migrate/20250827032901_add_check_in_session_to_check_ins.rb +5 -0
  44. data/db/migrate/20250827083828_add_unique_index_on_guest_id_check_in_session_id_to_cm_check_ins.rb +11 -0
  45. data/db/migrate/20250903085931_add_importable_to_cm_imports.rb +5 -0
  46. data/db/migrate/20250911100738_drop_cm_variant_blocks.rb +5 -0
  47. data/db/migrate/20250911100835_add_variant_id_to_cm_blocks.rb +5 -0
  48. data/db/migrate/20250911174607_add_metadata_columns_to_cm_vehicles.rb +11 -0
  49. data/db/migrate/20250911174653_add_metadata_columns_to_cm_trips.rb +11 -0
  50. data/lib/spree_cm_commissioner/test_helper/factories/check_in_session_factory.rb +11 -0
  51. data/lib/spree_cm_commissioner/version.rb +1 -1
  52. metadata +23 -8
  53. data/app/models/spree_cm_commissioner/variant_block.rb +0 -17
  54. data/app/serializers/spree_cm_commissioner/v2/storefront/variant_block_serializer.rb +0 -9
  55. data/lib/spree_cm_commissioner/test_helper/factories/variant_block_factory.rb +0 -7
@@ -2,7 +2,7 @@
2
2
  <li class="nav-item">
3
3
  <%= link_to Spree.t(:variant),
4
4
  admin_vectors_option_values_path(kind: :variant),
5
- class: "nav-link #{'active' if kind == "variant"}"
5
+ class: "nav-link #{'active' if kind == "variant"}"
6
6
  %>
7
7
  </li>
8
8
  <li class="nav-item">
@@ -17,5 +17,11 @@
17
17
  class: "nav-link #{'active' if kind == "vendor"}"
18
18
  %>
19
19
  </li>
20
+ <li class="nav-item">
21
+ <%= link_to Spree.t(:vehicle),
22
+ admin_vectors_option_values_path(kind: :vehicle),
23
+ class: "nav-link #{'active' if kind == "vehicle"}"
24
+ %>
25
+ </li>
20
26
  <br><br>
21
- <% end %>
27
+ <% end %>
@@ -1,17 +1,20 @@
1
+ <% current_path_prefix = params[:path_prefix] || SpreeCmCommissioner::VectorIcon::TYPES.first %>
2
+
1
3
  <% content_for :page_title do %>
2
4
  <%= Spree.t(:vectors) %>
3
5
  <% end %>
6
+
4
7
  <%= render partial: 'spree/admin/shared/vectors_tabs', locals: { current: :icons } %>
8
+
5
9
  <% content_for :page_tabs do %>
6
10
  <% SpreeCmCommissioner::VectorIcon::TYPES.each do |path_prefix| %>
7
- <li class="nav-item">
8
- <% default_params = { path_prefix: path_prefix, extension: '', page: 1, per_page: params[:per_page], query: '' } %>
9
- <% selected = params[:path_prefix] == path_prefix %>
10
- <% overrided_params = selected ? default_params : params.merge(default_params).permit(default_params.keys) %>
11
- <%= link_to path_prefix.humanize.upcase, overrided_params, class: "nav-link #{'active' if selected}" %>
12
- </li>
13
- <% end %>
11
+ <% selected = current_path_prefix == path_prefix %>
12
+ <% default_params = { path_prefix: path_prefix, extension: '', page: 1, per_page: params[:per_page], query: '' } %>
13
+ <% overrided_params = selected ? default_params : params.merge(default_params).permit(default_params.keys) %>
14
+ <%= link_to path_prefix.humanize.upcase, overrided_params, class: "nav-link #{'active' if selected}" %>
15
+ <% end %>
14
16
  <% end %>
17
+
15
18
  <small class="form-text text-muted">
16
19
  <ul>
17
20
  <% allow_extensions = SpreeCmCommissioner::VectorIcon::ACCEPTED_EXTENSIONS.to_sentence %>
@@ -19,6 +22,7 @@
19
22
  <li><%= raw I18n.t('vectors.icons.total', total_in_page: @collection.size, total_count: @collection.total_count) %></li>
20
23
  </ul>
21
24
  </small>
25
+
22
26
  <div class="table-responsive">
23
27
  <table class="table">
24
28
  <tbody class="pb-3">
@@ -0,0 +1,14 @@
1
+ <div class="content-cell flex" id="greeting-card">
2
+ <div>
3
+ <%= image_tag "mailer/bookme-plus.png", class: "icon-bookme-plus"%>
4
+ <div class="hello"><%= I18n.t('mail.order_mailer.hello', full_name: user_full_name(order))%></div>
5
+ <div class="description">
6
+ <%= I18n.t('mail.order_mailer.booking_event', order_number: line_item.number || 'NA') %>
7
+ </div>
8
+ </div>
9
+
10
+ <div class="qr-container">
11
+ <%= image_tag main_app.url_for("/li/#{line_item.id}"), class: 'qr-code' %>
12
+ <p>Show your QR to enter</p>
13
+ </div>
14
+ </div>
@@ -0,0 +1,213 @@
1
+ <style type="text/css" rel="stylesheet" media="all">
2
+ /* Custom Mailer ------------------------------ */
3
+
4
+ #confirm-email {
5
+ font-family: "Poppins", "Nunito Sans", Helvetica, Arial, sans-serif;
6
+ font-size: 16px;
7
+ }
8
+ #confirm-email p {
9
+ margin: 0;
10
+ }
11
+ #confirm-email h2 {
12
+ margin-bottom: 24px;
13
+ font-size: 22px;
14
+ font-weight: 700;
15
+ line-height: 28px;
16
+ }
17
+ #confirm-email hr {
18
+ height: 1.5px;
19
+ background-color: #dddfe2;
20
+ border: none;
21
+ margin: 24px 0;
22
+ }
23
+ .email-body_inner {
24
+ background-color: transparent;
25
+ padding-top: 40px;
26
+ }
27
+ #confirm-email .content-cell {
28
+ padding: 24px;
29
+ margin-bottom: 24px;
30
+ border-radius: 25px;
31
+ border: 1px solid #dddfe2;
32
+ }
33
+
34
+ #confirm-email .flex {
35
+ display: flex;
36
+ }
37
+ #confirm-email .mtb-24 {
38
+ margin: 24px 0;
39
+ }
40
+ #confirm-email .mb-24 {
41
+ margin-bottom: 24px;
42
+ }
43
+ #confirm-email .mb-16 {
44
+ margin-bottom: 16px;
45
+ }
46
+ #confirm-email .f-14 {
47
+ font-size: 14px;
48
+ }
49
+ #confirm-email .view-map {
50
+ text-decoration: none;
51
+ color: #6444D8;
52
+ }
53
+ #confirm-email #greeting-card {
54
+ color: #fff;
55
+ margin-top: 40px;
56
+ background: url(<%= image_path("mailer/line_item-mailer-bg.png") %>),
57
+ #35ace0;
58
+ }
59
+ #confirm-email #greeting-card p,
60
+ #confirm-email #greeting-card .hello,
61
+ #confirm-email #greeting-card .description {
62
+ color: #fff;
63
+ }
64
+ #confirm-email .align-right {
65
+ vertical-align: top;
66
+ }
67
+ #confirm-email .icon-bookme-plus {
68
+ width: 212px;
69
+ margin-bottom: 56px;
70
+ margin-top: 20px;
71
+ }
72
+ #confirm-email #greeting-card .hello {
73
+ font-size: 22px;
74
+ font-style: normal;
75
+ font-weight: 700;
76
+ line-height: 28px;
77
+ margin-bottom: 12px;
78
+ }
79
+ #confirm-email .qr-container {
80
+ padding: 20px 20px 0;
81
+ text-align: center;
82
+ }
83
+ #confirm-email .qr-container .qr-code {
84
+ width: 200px;
85
+ border-radius: 26px;
86
+ background-color: #fff;
87
+ margin-bottom: 12px;
88
+ }
89
+ #confirm-email .purchase_image {
90
+ padding: 0 10px 0 0;
91
+ }
92
+ #confirm-email .purchase_item_price {
93
+ margin-bottom: 8px;
94
+ }
95
+ #confirm-email .purchase-summary-item {
96
+ margin-top: 10px;
97
+ }
98
+ .purchase_total {
99
+ font-weight: normal;
100
+ text-align: left;
101
+ }
102
+ #confirm-email .purchase-summary_sub_total {
103
+ margin-bottom: 14px;
104
+ }
105
+ #confirm-email .purchase_footer {
106
+ border-top: none;
107
+ }
108
+ .purchase_total--label {
109
+ text-align: left;
110
+ }
111
+ #confirm-email .vertical-separater {
112
+ margin: 0 18px;
113
+ width: 2px;
114
+ height: auto;
115
+ background: #F2F2F2;
116
+ }
117
+ #confirm-email .two-columns .two-columns-item {
118
+ width: 45%;
119
+ }
120
+ #confirm-email .two-columns .two-columns-item_left {
121
+ width: 43%;
122
+ }
123
+ #confirm-email .two-columns .two-columns-item_detail {
124
+ margin-bottom: 16px;
125
+ }
126
+ #confirm-email .two-columns_icon {
127
+ min-width: 48px;
128
+ height: 48px;
129
+ background: #f1f1f1;
130
+ border-radius: 50%;
131
+ display: flex;
132
+ }
133
+ #confirm-email .two-columns_icon .vendor-logo {
134
+ max-width: 48px;
135
+ border-radius: 50%;
136
+ }
137
+ #confirm-email .two-columns_text-container {
138
+ margin-left: 14px;
139
+ }
140
+ #confirm-email .two-columns_title {
141
+ color: #49454F;
142
+ font-size: 16px;
143
+ font-style: normal;
144
+ font-weight: 400;
145
+ line-height: 24px;
146
+ letter-spacing: 0.1px;
147
+ }
148
+ #confirm-email .two-columns_description {
149
+ color: #000;
150
+ font-size: 16px;
151
+ font-style: normal;
152
+ font-weight: 400;
153
+ line-height: 24px;
154
+ letter-spacing: 0.1px;
155
+ }
156
+ #confirm-email .email-footer {
157
+ padding: 24px;
158
+ }
159
+ #confirm-email .email-footer .email-footer_inner {
160
+ color: #49454F;
161
+ text-align: center;
162
+ font-size: 16px;
163
+ font-style: normal;
164
+ font-weight: 400;
165
+ line-height: 24px;
166
+ letter-spacing: 0.1px;
167
+ }
168
+ .email-footer .email-footer_inner h2 {
169
+ text-align: center;
170
+ }
171
+ #confirm-email .email-footer .social_icons {
172
+ display: inline-block;
173
+ text-align: center;
174
+ }
175
+ #confirm-email .email-footer .social_icon {
176
+ background: #fff;
177
+ border-radius: 50%;
178
+ display: inline-block;
179
+ padding: 12px;
180
+ }
181
+ #confirm-email .email-footer .social_icon i {
182
+ color: #939393;
183
+ font-size: 22px;
184
+ }
185
+ #confirm-email .email-footer .email-footer_links a {
186
+ color: #6444D8;
187
+ text-decoration: none;
188
+ }
189
+ #confirm-email .notice-info .description {
190
+ padding-left: 12px;
191
+ }
192
+ #confirm-email .notice-info a {
193
+ color: #6444D8;
194
+ text-decoration: none;
195
+ }
196
+
197
+ @media (prefers-color-scheme: dark) {
198
+ #confirm-email .content-cell {
199
+ background-color: #333333;
200
+ }
201
+ }
202
+ .mail-icon {
203
+ width: 24px;
204
+ height: 24px;
205
+ margin: auto;
206
+ }
207
+
208
+ @media only screen and (max-width: 600px) {
209
+ .content-cell {
210
+ padding: 34px 15px !important;
211
+ }
212
+ }
213
+ </style>
@@ -0,0 +1,15 @@
1
+ <%= render 'spree_cm_commissioner/guest_mailer/mailer_stylesheets' %>
2
+
3
+ <table class="email-body" width="100%" cellpadding="0" cellspacing="0" role="presentation">
4
+ <tr>
5
+ <td align="center">
6
+ <table class="email-body_inner" width="570" cellpadding="0" cellspacing="0" role="presentation">
7
+ <tr>
8
+ <td id="confirm-email">
9
+ <%= render 'spree_cm_commissioner/guest_mailer/greeting', order: @order, line_item: @line_item, guest: @guest %>
10
+ </td>
11
+ </tr>
12
+ </table>
13
+ </td>
14
+ </tr>
15
+ </table>
@@ -0,0 +1,35 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html>
3
+ <head>
4
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
5
+ <meta name="x-apple-disable-message-reformatting"/>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
7
+ <link href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" rel="stylesheet">
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
9
+ <%= render partial: 'spree/shared/base_mailer_stylesheets' %>
10
+ <%= render partial: 'spree_cm_commissioner/guest_mailer/mailer_stylesheets' %>
11
+ </head>
12
+ <body>
13
+ <table class="email-wrapper" width="100%" cellpadding="0" cellspacing="0" role="presentation" id="confirm-email">
14
+ <tr>
15
+ <td align="center">
16
+ <table class="email-content" width="100%" cellpadding="0" cellspacing="0" role="presentation">
17
+ <!-- Email Body -->
18
+ <%= yield%>
19
+ </table>
20
+ </td>
21
+ </tr>
22
+ <tr>
23
+ <td height="60px">
24
+ <table class="email-footer" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation">
25
+ <tr>
26
+ <td>
27
+ <%= render 'spree_cm_commissioner/order_mailer/footer', store: @order.store%>
28
+ </td>
29
+ </tr>
30
+ </table>
31
+ </td>
32
+ </tr>
33
+ </table>
34
+ </body>
35
+ </html>
@@ -421,6 +421,8 @@ en:
421
421
  success: "Guest check-in in successfully"
422
422
  uncheck_in:
423
423
  success: "Guest uncheck-in in successfully"
424
+ check_in:
425
+ already_checked_in: "Guest has already checked in for this session"
424
426
 
425
427
  activerecord:
426
428
  attributes:
@@ -14,6 +14,8 @@ km:
14
14
  success: "Guest check-in in successfully"
15
15
  uncheck_in:
16
16
  success: "Guest uncheck-in in successfully"
17
+ check-in:
18
+ already_checked_in: "ភ្ញៀវបានចូលរួចហើយ"
17
19
 
18
20
  sms:
19
21
  to:
data/config/routes.rb CHANGED
@@ -547,8 +547,6 @@ Spree::Core::Engine.add_routes do
547
547
  end
548
548
 
549
549
  namespace :storefront do
550
- resources :inventory_item
551
-
552
550
  resources :waiting_room_sessions, only: :create
553
551
  resources :vattanac_banks, only: %i[create]
554
552
  resource :cart, controller: :cart, only: %i[show create destroy] do
@@ -658,6 +656,7 @@ Spree::Core::Engine.add_routes do
658
656
  resources :anonymous_line_items, path: 'a', only: %i[show]
659
657
  resources :anonymous_orders, path: 'o', only: %i[show]
660
658
 
659
+ resources :seat_layouts, only: %i[show]
661
660
  resources :inventory_items, only: %i[index]
662
661
  namespace :transit do
663
662
  resources :draft_orders, only: %i[create]
@@ -0,0 +1,14 @@
1
+ class CreateSpreeCmCommissionerSessions < ActiveRecord::Migration[7.0]
2
+ def change
3
+ create_table :cm_check_in_sessions, if_not_exists: true do |t|
4
+ t.string :name
5
+ t.text :description
6
+ t.integer :position
7
+ t.references :event, foreign_key: { to_table: :spree_taxons }
8
+ t.datetime :start_time
9
+ t.datetime :end_time
10
+ t.boolean :is_archived, default: false
11
+ t.timestamps
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ class CreateSpreeCmCommissionerCheckInRules < ActiveRecord::Migration[7.0]
2
+ def change
3
+ create_table :cm_check_in_rules, if_not_exists: true do |t|
4
+ t.references :check_in_session, foreign_key: { to_table: :cm_check_in_sessions }
5
+ t.string :ruleable_type
6
+ t.integer :ruleable_id
7
+ t.jsonb :preferences, default: {}
8
+ t.timestamps
9
+ end
10
+
11
+ add_index :cm_check_in_rules, [:ruleable_type, :ruleable_id], if_not_exists: true
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ class AddCheckInSessionToCheckIns < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_reference :cm_check_ins, :check_in_session, foreign_key: { to_table: :cm_check_in_sessions }, null: true
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ class AddUniqueIndexOnGuestIdCheckInSessionIdToCmCheckIns < ActiveRecord::Migration[7.0]
2
+ def change
3
+ unless index_exists?(:cm_check_ins, [:guest_id, :check_in_session_id], unique: true)
4
+ add_index :cm_check_ins, [:guest_id, :check_in_session_id], unique: true, name: "index_check_ins_on_guest_and_check_in_session"
5
+ end
6
+
7
+ unless index_exists?(:cm_check_ins, :guest_id, unique: true, where: "check_in_session_id IS NULL")
8
+ add_index :cm_check_ins, :guest_id, unique: true, where: "check_in_session_id IS NULL", name: "index_check_ins_on_guest_when_check_in_session_null"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ class AddImportableToCmImports < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_reference :cm_imports, :importable, polymorphic: true, null: true, if_not_exists: true
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class DropCmVariantBlocks < ActiveRecord::Migration[7.0]
2
+ def change
3
+ drop_table :cm_variant_blocks, if_exists: true
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddVariantIdToCmBlocks < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_reference :cm_blocks, :variant, foreign_key: { to_table: :spree_variants }, null: true, if_not_exists: true
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ class AddMetadataColumnsToCmVehicles < ActiveRecord::Migration[7.0]
2
+ def up
3
+ add_column :cm_vehicles, :public_metadata, :jsonb, default: '{}', if_not_exists: true
4
+ add_column :cm_vehicles, :private_metadata, :jsonb, default: '{}', if_not_exists: true
5
+ end
6
+
7
+ def down
8
+ remove_column :cm_vehicles, :public_metadata, if_exists: true
9
+ remove_column :cm_vehicles, :private_metadata, if_exists: true
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ class AddMetadataColumnsToCmTrips < ActiveRecord::Migration[7.0]
2
+ def up
3
+ add_column :cm_trips, :public_metadata, :jsonb, default: '{}', if_not_exists: true
4
+ add_column :cm_trips, :private_metadata, :jsonb, default: '{}', if_not_exists: true
5
+ end
6
+
7
+ def down
8
+ remove_column :cm_trips, :public_metadata, if_exists: true
9
+ remove_column :cm_trips, :private_metadata, if_exists: true
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ FactoryBot.define do
2
+ factory :cm_check_in_session, class: SpreeCmCommissioner::CheckInSession do
3
+ name { "Test Check In Session" }
4
+ description { "Description" }
5
+ position { 1 }
6
+ is_archived { false }
7
+ start_time { 1.hour.from_now }
8
+ end_time { 2.hours.from_now }
9
+ association :event, factory: :cm_taxon_event
10
+ end
11
+ end
@@ -1,5 +1,5 @@
1
1
  module SpreeCmCommissioner
2
- VERSION = '2.1.3'.freeze
2
+ VERSION = '2.1.4-pre1'.freeze
3
3
 
4
4
  module_function
5
5
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_cm_commissioner
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.1.4.pre.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-09-05 00:00:00.000000000 Z
11
+ date: 2025-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -943,6 +943,7 @@ files:
943
943
  - app/controllers/spree/api/v2/storefront/queue_cart/line_items_controller.rb
944
944
  - app/controllers/spree/api/v2/storefront/reset_passwords_controller.rb
945
945
  - app/controllers/spree/api/v2/storefront/s3_signed_urls_controller.rb
946
+ - app/controllers/spree/api/v2/storefront/seat_layouts_controller.rb
946
947
  - app/controllers/spree/api/v2/storefront/self_check_in_controller.rb
947
948
  - app/controllers/spree/api/v2/storefront/transit/draft_orders_controller.rb
948
949
  - app/controllers/spree/api/v2/storefront/trip_places_controller.rb
@@ -1142,6 +1143,7 @@ files:
1142
1143
  - app/interactors/spree_cm_commissioner/firebase_id_token_provider.rb
1143
1144
  - app/interactors/spree_cm_commissioner/google_places_fetcher.rb
1144
1145
  - app/interactors/spree_cm_commissioner/guest_id_card_manager.rb
1146
+ - app/interactors/spree_cm_commissioner/guest_seat_updater.rb
1145
1147
  - app/interactors/spree_cm_commissioner/host_matcher.rb
1146
1148
  - app/interactors/spree_cm_commissioner/id_card_image_updater.rb
1147
1149
  - app/interactors/spree_cm_commissioner/image_saver.rb
@@ -1285,11 +1287,11 @@ files:
1285
1287
  - app/mailers/spree_cm_commissioner/application_mailer.rb
1286
1288
  - app/mailers/spree_cm_commissioner/crew_invite_mailer.rb
1287
1289
  - app/mailers/spree_cm_commissioner/event_transactional_mailer.rb
1290
+ - app/mailers/spree_cm_commissioner/guest_mailer.rb
1288
1291
  - app/mailers/spree_cm_commissioner/pin_code_mailer.rb
1289
1292
  - app/mailers/spree_cm_commissioner/team_invite_mailer.rb
1290
1293
  - app/models/.gitkeep
1291
1294
  - app/models/concerns/spree_cm_commissioner/event_check_in_flowable.rb
1292
- - app/models/concerns/spree_cm_commissioner/guest_seat_updater.rb
1293
1295
  - app/models/concerns/spree_cm_commissioner/homepage_section_bitwise.rb
1294
1296
  - app/models/concerns/spree_cm_commissioner/json_preference_validator.rb
1295
1297
  - app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb
@@ -1334,6 +1336,8 @@ files:
1334
1336
  - app/models/spree_cm_commissioner/check_in.rb
1335
1337
  - app/models/spree_cm_commissioner/check_in_ability.rb
1336
1338
  - app/models/spree_cm_commissioner/check_in_record.rb
1339
+ - app/models/spree_cm_commissioner/check_in_rule.rb
1340
+ - app/models/spree_cm_commissioner/check_in_session.rb
1337
1341
  - app/models/spree_cm_commissioner/classification_decorator.rb
1338
1342
  - app/models/spree_cm_commissioner/cms_page_decorator.rb
1339
1343
  - app/models/spree_cm_commissioner/configuration.rb
@@ -1494,7 +1498,6 @@ files:
1494
1498
  - app/models/spree_cm_commissioner/user_place.rb
1495
1499
  - app/models/spree_cm_commissioner/user_profile.rb
1496
1500
  - app/models/spree_cm_commissioner/user_taxon.rb
1497
- - app/models/spree_cm_commissioner/variant_block.rb
1498
1501
  - app/models/spree_cm_commissioner/variant_decorator.rb
1499
1502
  - app/models/spree_cm_commissioner/variant_guest_card_class.rb
1500
1503
  - app/models/spree_cm_commissioner/variant_options.rb
@@ -1838,7 +1841,6 @@ files:
1838
1841
  - app/serializers/spree_cm_commissioner/v2/storefront/trip_vendor_serializer.rb
1839
1842
  - app/serializers/spree_cm_commissioner/v2/storefront/user_contact_serializer.rb
1840
1843
  - app/serializers/spree_cm_commissioner/v2/storefront/user_identity_provider_serializer.rb
1841
- - app/serializers/spree_cm_commissioner/v2/storefront/variant_block_serializer.rb
1842
1844
  - app/serializers/spree_cm_commissioner/v2/storefront/vendor_include_product_serializer.rb
1843
1845
  - app/serializers/spree_cm_commissioner/v2/storefront/video_serializer.rb
1844
1846
  - app/serializers/spree_cm_commissioner/v2/storefront/waiting_room_session_serializer.rb
@@ -2310,8 +2312,12 @@ files:
2310
2312
  - app/views/spree_cm_commissioner/event_transactional_mailer/send_to_organizer.html.erb
2311
2313
  - app/views/spree_cm_commissioner/event_transactional_mailer/send_to_participant.html.erb
2312
2314
  - app/views/spree_cm_commissioner/guest_cards/show.html.erb
2315
+ - app/views/spree_cm_commissioner/guest_mailer/_greeting.html.erb
2316
+ - app/views/spree_cm_commissioner/guest_mailer/_mailer_stylesheets.html.erb
2317
+ - app/views/spree_cm_commissioner/guest_mailer/send_ticket_to_guest.html.erb
2313
2318
  - app/views/spree_cm_commissioner/layouts/crew_invite_mailer.html.erb
2314
2319
  - app/views/spree_cm_commissioner/layouts/event_transactional_mailer.html.erb
2320
+ - app/views/spree_cm_commissioner/layouts/guest_mailer.html.erb
2315
2321
  - app/views/spree_cm_commissioner/layouts/line_item_mailer.html.erb
2316
2322
  - app/views/spree_cm_commissioner/layouts/order_mailer.html.erb
2317
2323
  - app/views/spree_cm_commissioner/layouts/team_invite_mailer.html.erb
@@ -2728,6 +2734,15 @@ files:
2728
2734
  - db/migrate/20250812121745_add_data_fill_stage_phase_to_cm_guests.rb
2729
2735
  - db/migrate/20250814073854_add_call_to_action_to_spree_products.rb
2730
2736
  - db/migrate/20250826013549_add_delete_at_to_cm_customer_notifications.rb
2737
+ - db/migrate/20250827022503_create_spree_cm_commissioner_sessions.rb
2738
+ - db/migrate/20250827022757_create_spree_cm_commissioner_check_in_rules.rb
2739
+ - db/migrate/20250827032901_add_check_in_session_to_check_ins.rb
2740
+ - db/migrate/20250827083828_add_unique_index_on_guest_id_check_in_session_id_to_cm_check_ins.rb
2741
+ - db/migrate/20250903085931_add_importable_to_cm_imports.rb
2742
+ - db/migrate/20250911100738_drop_cm_variant_blocks.rb
2743
+ - db/migrate/20250911100835_add_variant_id_to_cm_blocks.rb
2744
+ - db/migrate/20250911174607_add_metadata_columns_to_cm_vehicles.rb
2745
+ - db/migrate/20250911174653_add_metadata_columns_to_cm_trips.rb
2731
2746
  - docker-compose.yml
2732
2747
  - docs/option_types/attr_types.md
2733
2748
  - docs/private_key.pem
@@ -2763,6 +2778,7 @@ files:
2763
2778
  - lib/spree_cm_commissioner/test_helper/factories/blazer_query_factory.rb
2764
2779
  - lib/spree_cm_commissioner/test_helper/factories/block_factory.rb
2765
2780
  - lib/spree_cm_commissioner/test_helper/factories/check_in_factory.rb
2781
+ - lib/spree_cm_commissioner/test_helper/factories/check_in_session_factory.rb
2766
2782
  - lib/spree_cm_commissioner/test_helper/factories/cms_page_factory.rb
2767
2783
  - lib/spree_cm_commissioner/test_helper/factories/country_factory.rb
2768
2784
  - lib/spree_cm_commissioner/test_helper/factories/customer_factory.rb
@@ -2828,7 +2844,6 @@ files:
2828
2844
  - lib/spree_cm_commissioner/test_helper/factories/user_event_factory.rb
2829
2845
  - lib/spree_cm_commissioner/test_helper/factories/user_factory.rb
2830
2846
  - lib/spree_cm_commissioner/test_helper/factories/user_identity_provider_factory.rb
2831
- - lib/spree_cm_commissioner/test_helper/factories/variant_block_factory.rb
2832
2847
  - lib/spree_cm_commissioner/test_helper/factories/variant_factory.rb
2833
2848
  - lib/spree_cm_commissioner/test_helper/factories/vehicle_factory.rb
2834
2849
  - lib/spree_cm_commissioner/test_helper/factories/vendor_factory.rb
@@ -2887,9 +2902,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
2887
2902
  version: '2.7'
2888
2903
  required_rubygems_version: !ruby/object:Gem::Requirement
2889
2904
  requirements:
2890
- - - ">="
2905
+ - - ">"
2891
2906
  - !ruby/object:Gem::Version
2892
- version: '0'
2907
+ version: 1.3.1
2893
2908
  requirements:
2894
2909
  - none
2895
2910
  rubygems_version: 3.4.1
@@ -1,17 +0,0 @@
1
- module SpreeCmCommissioner
2
- class VariantBlock < Base
3
- belongs_to :variant, class_name: 'Spree::Variant', optional: false
4
- belongs_to :trip, class_name: 'SpreeCmCommissioner::Trip', optional: false
5
- belongs_to :block, class_name: 'SpreeCmCommissioner::Block', optional: false
6
-
7
- validates :block_id, uniqueness: { scope: %i[variant_id trip_id] }
8
-
9
- before_validation :set_trip, if: -> { trip_id.blank? }
10
-
11
- private
12
-
13
- def set_trip
14
- self.trip = variant&.product&.trip
15
- end
16
- end
17
- end
@@ -1,9 +0,0 @@
1
- module SpreeCmCommissioner
2
- module V2
3
- module Storefront
4
- class VariantBlockSerializer < BaseSerializer
5
- attributes :variant_id, :block_id
6
- end
7
- end
8
- end
9
- end
@@ -1,7 +0,0 @@
1
- FactoryBot.define do
2
- factory :cm_variant_block, class: SpreeCmCommissioner::VariantBlock do
3
- association :variant, factory: :cm_variant
4
- association :trip, factory: :cm_trip
5
- association :block, factory: :cm_block
6
- end
7
- end