spree_cm_commissioner 2.1.9.pre.pre2 → 2.2.0

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 (71) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.tool-versions +1 -1
  4. data/Gemfile.lock +2 -1
  5. data/app/controllers/spree/admin/users_controller_decorator.rb +2 -0
  6. data/app/controllers/spree/api/v2/storefront/account/guest_dynamic_fields_controller.rb +3 -5
  7. data/app/controllers/spree/api/v2/storefront/account/mark_guest_info_complete_controller.rb +3 -8
  8. data/app/controllers/spree/api/v2/storefront/guests_controller.rb +37 -18
  9. data/app/interactors/spree_cm_commissioner/account_recover.rb +2 -2
  10. data/app/interactors/spree_cm_commissioner/guest_dynamic_field_notification_sender.rb +11 -0
  11. data/app/interactors/spree_cm_commissioner/notification_reader.rb +3 -1
  12. data/app/interactors/spree_cm_commissioner/stock/inventory_item_resetter.rb +1 -1
  13. data/app/interactors/spree_cm_commissioner/team_member_adder.rb +37 -0
  14. data/app/interactors/spree_cm_commissioner/team_member_creator.rb +58 -0
  15. data/app/interactors/spree_cm_commissioner/transit/draft_order_creator.rb +4 -0
  16. data/app/interactors/spree_cm_commissioner/trip_clone_creator.rb +2 -21
  17. data/app/interactors/spree_cm_commissioner/user_password_authenticator.rb +2 -2
  18. data/app/interactors/spree_cm_commissioner/user_registration_with_fb_token.rb +1 -1
  19. data/app/interactors/spree_cm_commissioner/user_registration_with_id_token.rb +1 -1
  20. data/app/interactors/spree_cm_commissioner/user_telegram_web_app_authenticator.rb +2 -0
  21. data/app/interactors/spree_cm_commissioner/user_vendor_assigner.rb +39 -0
  22. data/app/interactors/spree_cm_commissioner/vattanac_bank_initiator.rb +2 -0
  23. data/app/jobs/spree_cm_commissioner/transit/route_fulfilled_order_count_incrementer_job.rb +10 -0
  24. data/app/jobs/spree_cm_commissioner/transit/route_order_count_incrementer_job.rb +10 -0
  25. data/app/jobs/spree_cm_commissioner/transit/route_previous_trip_count_decrementer_job.rb +13 -0
  26. data/app/jobs/spree_cm_commissioner/transit/route_trip_count_decrementer_job.rb +10 -0
  27. data/app/jobs/spree_cm_commissioner/transit/route_trip_count_incrementer_job.rb +10 -0
  28. data/app/models/concerns/spree_cm_commissioner/order_state_machine.rb +12 -0
  29. data/app/models/concerns/spree_cm_commissioner/route_order_countable.rb +30 -0
  30. data/app/models/concerns/spree_cm_commissioner/route_trip_count_callbacks.rb +48 -0
  31. data/app/models/concerns/spree_cm_commissioner/service_type.rb +35 -0
  32. data/app/models/concerns/spree_cm_commissioner/store_metadata.rb +14 -3
  33. data/app/models/spree_cm_commissioner/guest.rb +3 -0
  34. data/app/models/spree_cm_commissioner/inventory_item.rb +1 -1
  35. data/app/models/spree_cm_commissioner/notification.rb +5 -1
  36. data/app/models/spree_cm_commissioner/order_decorator.rb +5 -0
  37. data/app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb +2 -2
  38. data/app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb +2 -2
  39. data/app/models/spree_cm_commissioner/route.rb +12 -0
  40. data/app/models/spree_cm_commissioner/trip.rb +40 -0
  41. data/app/models/spree_cm_commissioner/user_decorator.rb +11 -0
  42. data/app/models/spree_cm_commissioner/vendor_decorator.rb +1 -0
  43. data/app/models/spree_cm_commissioner/vendor_route.rb +9 -0
  44. data/app/notifications/spree_cm_commissioner/guest_dynamic_field_notification.rb +24 -0
  45. data/app/overrides/spree/admin/users/_form/user_add_on.html.erb.deface +27 -0
  46. data/app/services/spree_cm_commissioner/transit/base_route_order_metrics_updater.rb +62 -0
  47. data/app/services/spree_cm_commissioner/transit/route_fulfilled_order_count_incrementer_service.rb +18 -0
  48. data/app/services/spree_cm_commissioner/transit/route_order_count_incrementer_service.rb +19 -0
  49. data/app/services/spree_cm_commissioner/transit/route_previous_trip_count_decrementer_service.rb +30 -0
  50. data/app/services/spree_cm_commissioner/transit/route_trip_count_decrementer_service.rb +33 -0
  51. data/app/services/spree_cm_commissioner/transit/route_trip_count_incrementer_service.rb +33 -0
  52. data/app/services/spree_cm_commissioner/users/incomplete_guest_checker_service.rb +34 -0
  53. data/app/views/blazer/queries/embed/_content.html.erb +4 -2
  54. data/config/initializers/spree_permitted_attributes.rb +1 -0
  55. data/config/locales/en.yml +20 -0
  56. data/config/locales/km.yml +20 -0
  57. data/db/migrate/20250911042815_create_cm_routes.rb +16 -0
  58. data/db/migrate/20250911045649_create_cm_vendor_routes.rb +12 -0
  59. data/db/migrate/20251008064344_add_route_id_to_cm_trips.rb +7 -0
  60. data/db/migrate/20251009033331_add_registered_by_to_spree_users.rb +6 -0
  61. data/db/migrate/20251009073040_add_lock_version_to_cm_routes.rb +5 -0
  62. data/db/migrate/20251009073929_add_lock_version_to_cm_vendor_routes.rb +5 -0
  63. data/lib/spree_cm_commissioner/engine.rb +4 -0
  64. data/lib/spree_cm_commissioner/test_helper/factories/route_factory.rb +10 -0
  65. data/lib/spree_cm_commissioner/test_helper/factories/trip_factory.rb +1 -0
  66. data/lib/spree_cm_commissioner/test_helper/factories/vendor_route_factory.rb +7 -0
  67. data/lib/spree_cm_commissioner/version.rb +1 -1
  68. data/lib/spree_cm_commissioner.rb +8 -14
  69. data/lib/tasks/backfill_confirmed_at.rake +21 -0
  70. data/spree_cm_commissioner.gemspec +1 -0
  71. metadata +50 -4
@@ -1,6 +1,14 @@
1
1
  # Sample localization file for English. Add more files in this directory for other locales.
2
2
  # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
3
  en:
4
+ views:
5
+ manage_team:
6
+ add:
7
+ user_not_found: "User not found"
8
+ user_assigned_successfully: "User assigned successfully"
9
+ create:
10
+ user_already_exists: "A user with this email already exists"
11
+ success: "User created and assigned successfully"
4
12
  account_checker:
5
13
  verify:
6
14
  already_exist: "%{login} already exist"
@@ -183,6 +191,18 @@ en:
183
191
  riel: "៛"
184
192
 
185
193
  spree:
194
+ registered_by:
195
+ system_registered: "System Registered"
196
+ self_registered: "Self Registered"
197
+ registration_source: "Registration source"
198
+ service_types:
199
+ organizer: "Organizer"
200
+ transit: "Transit"
201
+ intercity_taxi: "Intercity Taxi"
202
+ service_type: "Service Type"
203
+ primary_service_type: "Primary Service Type"
204
+ select_service_type: "Select Service Type"
205
+ add_on: "Add-Ons"
186
206
  cancel: "Cancel"
187
207
  confirm: "Confirm"
188
208
  logo: "Logo"
@@ -2,6 +2,14 @@
2
2
  # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
3
 
4
4
  km:
5
+ views:
6
+ manage_team:
7
+ add:
8
+ user_not_found: "រកមិនឃើញអ្នកប្រើប្រាស់"
9
+ user_assigned_successfully: "បានចាត់តាំងអ្នកប្រើប្រាស់ដោយជោគជ័យ"
10
+ create:
11
+ user_already_exists: "មានអ្នកប្រើប្រាស់អ៊ីមែលនេះរួចហើយ"
12
+ success: "បានបង្កើត និងចាត់តាំងអ្នកប្រើប្រាស់ដោយជោគជ័យ"
5
13
  account_checker:
6
14
  verify:
7
15
  already_exist: "%{login} already exist"
@@ -171,6 +179,18 @@ km:
171
179
  riel: "៛"
172
180
 
173
181
  spree:
182
+ registered_by:
183
+ system_registered: "ចុះឈ្មោះដោយប្រព័ន្ធ"
184
+ self_registered: "ចុះឈ្មោះដោយខ្លួនឯង"
185
+ registration_source: "ប្រភេទការចុះឈ្មោះ"
186
+ service_types:
187
+ organizer: "Organizer"
188
+ transit: "Transit"
189
+ intercity_taxi: "Intercity Taxi"
190
+ service_type: "ប្រភេទសេវាកម្ម"
191
+ primary_service_type: "ប្រភេទសេវាកម្មចម្បង"
192
+ select_service_type: "ជ្រើសរើសប្រភេទសេវាកម្ម"
193
+ add_on: "ផ្នែកបន្ថែម"
174
194
  km: "ភាសារខ្មែរ"
175
195
  date_of_birth: "ថ្ងៃខែឆ្នាំកំណើត"
176
196
  kind: "ប្រភេទ"
@@ -0,0 +1,16 @@
1
+ class CreateCmRoutes < ActiveRecord::Migration[7.0]
2
+ def change
3
+ create_table :cm_routes, if_not_exists: true do |t|
4
+ t.string :route_name
5
+ t.integer :origin_place_id
6
+ t.integer :destination_place_id
7
+ t.integer :order_count, default: 0
8
+ t.integer :trip_count, default: 0
9
+ t.integer :fulfilled_order_count, default: 0
10
+ t.integer :lock_version, default: 0, null: false
11
+ t.timestamps
12
+ end
13
+
14
+ add_index :cm_routes, [:origin_place_id, :destination_place_id], unique: true, if_not_exists: true
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ class CreateCmVendorRoutes < ActiveRecord::Migration[7.0]
2
+ def change
3
+ create_table :cm_vendor_routes, if_not_exists: true do |t|
4
+ t.integer :trip_count, default: 0
5
+
6
+ t.references :vendor, foreign_key: { to_table: :spree_vendors }, null: false
7
+ t.references :route, foreign_key: { to_table: :cm_routes }, null: false
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,7 @@
1
+ class AddRouteIdToCmTrips < ActiveRecord::Migration[7.0]
2
+ def change
3
+ unless column_exists?(:cm_trips, :route_id)
4
+ add_reference :cm_trips, :route, foreign_key: { to_table: :cm_routes }, null: true
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,6 @@
1
+ class AddRegisteredByToSpreeUsers < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :spree_users, :registered_by, :integer, default: 0, if_not_exists: true
4
+ add_index :spree_users, :registered_by, if_not_exists: true
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class AddLockVersionToCmRoutes < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :cm_routes, :lock_version, :integer, default: 0, null: false, if_not_exists: true
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddLockVersionToCmVendorRoutes < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :cm_vendor_routes, :lock_version, :integer, default: 0, null: false, if_not_exists: true
4
+ end
5
+ end
@@ -13,6 +13,10 @@ module SpreeCmCommissioner
13
13
  Config = Configuration.new
14
14
  end
15
15
 
16
+ initializer 'spree_cm_commissioner.spree_auth', after: 'spree.auth.environment' do |_app|
17
+ Spree::Auth::Config[:confirmable] = true
18
+ end
19
+
16
20
  def self.activate
17
21
  Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
18
22
  Rails.configuration.cache_classes ? require(c) : load(c)
@@ -0,0 +1,10 @@
1
+ FactoryBot.define do
2
+ factory :cm_route, class: 'SpreeCmCommissioner::Route' do
3
+ sequence(:route_name) { |n| "Route #{n}" }
4
+ origin_place_id { create(:cm_place).id }
5
+ destination_place_id { create(:cm_place).id }
6
+ trip_count { 0 }
7
+ order_count { 0 }
8
+ fulfilled_order_count { 0 }
9
+ end
10
+ end
@@ -10,5 +10,6 @@ FactoryBot.define do
10
10
  association :vehicle, factory: :cm_vehicle
11
11
  association :origin_place, factory: :cm_place
12
12
  association :destination_place, factory: :cm_place
13
+ association :route, factory: :cm_route
13
14
  end
14
15
  end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :cm_vendor_route, class: 'SpreeCmCommissioner::VendorRoute' do
3
+ association :route, factory: :cm_route
4
+ association :vendor
5
+ trip_count { 0 }
6
+ end
7
+ end
@@ -1,5 +1,5 @@
1
1
  module SpreeCmCommissioner
2
- VERSION = '2.1.9-pre2'.freeze
2
+ VERSION = '2.2.0'.freeze
3
3
 
4
4
  module_function
5
5
 
@@ -1,6 +1,7 @@
1
1
  require 'spree'
2
2
  require 'spree_api_v1'
3
3
  require 'spree_backend'
4
+ require 'spree_emails'
4
5
  require 'spree_auth_devise'
5
6
  require 'spree_multi_vendor'
6
7
  require 'blazer'
@@ -52,23 +53,16 @@ require 'byebug' if Rails.env.development? || Rails.env.test?
52
53
 
53
54
  module SpreeCmCommissioner
54
55
  class << self
55
- # Allows overriding the default Redis connection pools with custom ones
56
- attr_writer :inventory_redis_pool, :external_integrations_redis_pool
56
+ # Allows overriding the default Redis connection pool with a custom one
57
+ attr_writer :redis_pool
57
58
 
58
- # Inventory Redis pool for inventory management
59
- def inventory_redis_pool
60
- @inventory_redis_pool ||= default_redis_pool
59
+ def redis_pool
60
+ @redis_pool ||= default_redis_pool
61
61
  end
62
62
 
63
- # External integrations Redis pool for external API integrations
64
- def external_integrations_redis_pool
65
- @external_integrations_redis_pool ||= default_redis_pool
66
- end
67
-
68
- # Resets all Redis pools, useful for testing or reinitialization
69
- def reset_redis_pools
70
- @inventory_redis_pool = nil
71
- @external_integrations_redis_pool = nil
63
+ # Resets the Redis pool, useful for testing or reinitialization
64
+ def reset_redis_pool
65
+ @redis_pool = nil
72
66
  end
73
67
 
74
68
  private
@@ -0,0 +1,21 @@
1
+ namespace :spree_cm_commissioner do
2
+ namespace :users do
3
+ desc 'Backfill confirmed_at for spree_users where NULL'
4
+ task backfill_confirmed_at: :environment do
5
+ batch_size = 1000
6
+ scope = Spree::User.where(confirmed_at: nil)
7
+ total = scope.count
8
+ puts "Users to backfill: #{total}"
9
+
10
+ updated = 0
11
+ scope.in_batches(of: batch_size) do |relation|
12
+ relation.find_each do |user|
13
+ user.update!(confirmed_at: Time.zone.now)
14
+ updated += 1
15
+ end
16
+ end
17
+
18
+ puts("Updated #{updated} users")
19
+ end
20
+ end
21
+ end
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.add_dependency 'spree', spree_opts
26
26
  s.add_dependency 'spree_api_v1', spree_opts # latest spree_multi_vendor 2.4.0 still depends on the Spree v1 API
27
27
  s.add_dependency 'spree_auth_devise', spree_opts
28
+ s.add_dependency 'spree_emails', spree_opts
28
29
  s.add_dependency 'spree_backend', spree_opts
29
30
  s.add_dependency 'spree_multi_vendor', '>= 2.4.1'
30
31
  s.add_dependency 'spree_extension'
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.9.pre.pre2
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-10-15 00:00:00.000000000 Z
11
+ date: 2025-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: 4.5.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: spree_emails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 4.5.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 4.5.0
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: spree_backend
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -1163,6 +1177,7 @@ files:
1163
1177
  - app/interactors/spree_cm_commissioner/firebase_email_fetcher_cron_executor.rb
1164
1178
  - app/interactors/spree_cm_commissioner/firebase_id_token_provider.rb
1165
1179
  - app/interactors/spree_cm_commissioner/google_places_fetcher.rb
1180
+ - app/interactors/spree_cm_commissioner/guest_dynamic_field_notification_sender.rb
1166
1181
  - app/interactors/spree_cm_commissioner/guest_dynamic_fields_manager.rb
1167
1182
  - app/interactors/spree_cm_commissioner/guest_id_card_manager.rb
1168
1183
  - app/interactors/spree_cm_commissioner/guest_seat_updater.rb
@@ -1219,6 +1234,8 @@ files:
1219
1234
  - app/interactors/spree_cm_commissioner/subscriptions_order_cron_executor.rb
1220
1235
  - app/interactors/spree_cm_commissioner/subscriptions_prepaid_order_creator.rb
1221
1236
  - app/interactors/spree_cm_commissioner/taxi_trip_creator.rb
1237
+ - app/interactors/spree_cm_commissioner/team_member_adder.rb
1238
+ - app/interactors/spree_cm_commissioner/team_member_creator.rb
1222
1239
  - app/interactors/spree_cm_commissioner/telegram_chats_auto_finder.rb
1223
1240
  - app/interactors/spree_cm_commissioner/telegram_chats_finder.rb
1224
1241
  - app/interactors/spree_cm_commissioner/telegram_debug_pin_code_sender.rb
@@ -1249,6 +1266,7 @@ files:
1249
1266
  - app/interactors/spree_cm_commissioner/user_registration_with_id_token.rb
1250
1267
  - app/interactors/spree_cm_commissioner/user_telegram_web_app_authenticator.rb
1251
1268
  - app/interactors/spree_cm_commissioner/user_vattanac_bank_web_app_authenticator.rb
1269
+ - app/interactors/spree_cm_commissioner/user_vendor_assigner.rb
1252
1270
  - app/interactors/spree_cm_commissioner/variant_block_updater.rb
1253
1271
  - app/interactors/spree_cm_commissioner/vattanac_bank_initiator.rb
1254
1272
  - app/interactors/spree_cm_commissioner/vehicle_updater.rb
@@ -1298,6 +1316,11 @@ files:
1298
1316
  - app/jobs/spree_cm_commissioner/telegram_debug_pin_code_sender_job.rb
1299
1317
  - app/jobs/spree_cm_commissioner/telegram_notification_sender_job.rb
1300
1318
  - app/jobs/spree_cm_commissioner/telegram_start_message_sender_job.rb
1319
+ - app/jobs/spree_cm_commissioner/transit/route_fulfilled_order_count_incrementer_job.rb
1320
+ - app/jobs/spree_cm_commissioner/transit/route_order_count_incrementer_job.rb
1321
+ - app/jobs/spree_cm_commissioner/transit/route_previous_trip_count_decrementer_job.rb
1322
+ - app/jobs/spree_cm_commissioner/transit/route_trip_count_decrementer_job.rb
1323
+ - app/jobs/spree_cm_commissioner/transit/route_trip_count_incrementer_job.rb
1301
1324
  - app/jobs/spree_cm_commissioner/unique_device_token_cron_job.rb
1302
1325
  - app/jobs/spree_cm_commissioner/variants_public_metadata_updater_job.rb
1303
1326
  - app/jobs/spree_cm_commissioner/vendor_job.rb
@@ -1331,8 +1354,11 @@ files:
1331
1354
  - app/models/concerns/spree_cm_commissioner/phone_number_sanitizer.rb
1332
1355
  - app/models/concerns/spree_cm_commissioner/product_delegation.rb
1333
1356
  - app/models/concerns/spree_cm_commissioner/product_type.rb
1357
+ - app/models/concerns/spree_cm_commissioner/route_order_countable.rb
1358
+ - app/models/concerns/spree_cm_commissioner/route_trip_count_callbacks.rb
1334
1359
  - app/models/concerns/spree_cm_commissioner/route_type.rb
1335
1360
  - app/models/concerns/spree_cm_commissioner/service_calendar_type.rb
1361
+ - app/models/concerns/spree_cm_commissioner/service_type.rb
1336
1362
  - app/models/concerns/spree_cm_commissioner/store_metadata.rb
1337
1363
  - app/models/concerns/spree_cm_commissioner/store_preference.rb
1338
1364
  - app/models/concerns/spree_cm_commissioner/taxon_kind.rb
@@ -1470,6 +1496,7 @@ files:
1470
1496
  - app/models/spree_cm_commissioner/reserved_block.rb
1471
1497
  - app/models/spree_cm_commissioner/role_decorator.rb
1472
1498
  - app/models/spree_cm_commissioner/role_permission.rb
1499
+ - app/models/spree_cm_commissioner/route.rb
1473
1500
  - app/models/spree_cm_commissioner/s3_presigned_url.rb
1474
1501
  - app/models/spree_cm_commissioner/s3_presigned_url_builder.rb
1475
1502
  - app/models/spree_cm_commissioner/saved_guest.rb
@@ -1537,6 +1564,7 @@ files:
1537
1564
  - app/models/spree_cm_commissioner/vendor_photo.rb
1538
1565
  - app/models/spree_cm_commissioner/vendor_place.rb
1539
1566
  - app/models/spree_cm_commissioner/vendor_promotion_rule.rb
1567
+ - app/models/spree_cm_commissioner/vendor_route.rb
1540
1568
  - app/models/spree_cm_commissioner/vendor_web_promotion_banner.rb
1541
1569
  - app/models/spree_cm_commissioner/video.rb
1542
1570
  - app/models/spree_cm_commissioner/video_on_demand.rb
@@ -1550,6 +1578,7 @@ files:
1550
1578
  - app/notifications/delivery_methods/database_decorator.rb
1551
1579
  - app/notifications/noticed_fcm_base.rb
1552
1580
  - app/notifications/spree_cm_commissioner/customer_content_notification.rb
1581
+ - app/notifications/spree_cm_commissioner/guest_dynamic_field_notification.rb
1553
1582
  - app/notifications/spree_cm_commissioner/order_accepted_notification.rb
1554
1583
  - app/notifications/spree_cm_commissioner/order_complete_notification.rb
1555
1584
  - app/notifications/spree_cm_commissioner/order_rejected_notification.rb
@@ -1661,6 +1690,7 @@ files:
1661
1690
  - app/overrides/spree/admin/users/_form/fields.html.erb.deface
1662
1691
  - app/overrides/spree/admin/users/_form/profile_pic.html.erb.deface
1663
1692
  - app/overrides/spree/admin/users/_form/roles_fields.html.erb.deface
1693
+ - app/overrides/spree/admin/users/_form/user_add_on.html.erb.deface
1664
1694
  - app/overrides/spree/admin/users/_tabs/tabs.html.erb.deface
1665
1695
  - app/overrides/spree/admin/users/index/body.html.erb.deface
1666
1696
  - app/overrides/spree/admin/users/index/headers.html.erb.deface
@@ -1916,9 +1946,16 @@ files:
1916
1946
  - app/services/spree_cm_commissioner/role_permissions_loader.rb
1917
1947
  - app/services/spree_cm_commissioner/rsa_service.rb
1918
1948
  - app/services/spree_cm_commissioner/seeds/roles_decorator.rb
1949
+ - app/services/spree_cm_commissioner/transit/base_route_order_metrics_updater.rb
1919
1950
  - app/services/spree_cm_commissioner/transit/legs_builder_service.rb
1951
+ - app/services/spree_cm_commissioner/transit/route_fulfilled_order_count_incrementer_service.rb
1952
+ - app/services/spree_cm_commissioner/transit/route_order_count_incrementer_service.rb
1953
+ - app/services/spree_cm_commissioner/transit/route_previous_trip_count_decrementer_service.rb
1954
+ - app/services/spree_cm_commissioner/transit/route_trip_count_decrementer_service.rb
1955
+ - app/services/spree_cm_commissioner/transit/route_trip_count_incrementer_service.rb
1920
1956
  - app/services/spree_cm_commissioner/user_authenticator.rb
1921
1957
  - app/services/spree_cm_commissioner/user_roles_assigner.rb
1958
+ - app/services/spree_cm_commissioner/users/incomplete_guest_checker_service.rb
1922
1959
  - app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb
1923
1960
  - app/services/spree_cm_commissioner/waiting_room_system_metadata_setter.rb
1924
1961
  - app/services/spree_cm_commissioner/webhooks/subscribers/handle_request_decorator.rb
@@ -2771,6 +2808,8 @@ files:
2771
2808
  - db/migrate/20250827083828_add_unique_index_on_guest_id_check_in_session_id_to_cm_check_ins.rb
2772
2809
  - db/migrate/20250902092904_add_section_to_cm_product_dynamic_fields.rb
2773
2810
  - db/migrate/20250903085931_add_importable_to_cm_imports.rb
2811
+ - db/migrate/20250911042815_create_cm_routes.rb
2812
+ - db/migrate/20250911045649_create_cm_vendor_routes.rb
2774
2813
  - db/migrate/20250911100738_drop_cm_variant_blocks.rb
2775
2814
  - db/migrate/20250911100835_add_variant_id_to_cm_blocks.rb
2776
2815
  - db/migrate/20250911174607_add_metadata_columns_to_cm_vehicles.rb
@@ -2778,6 +2817,10 @@ files:
2778
2817
  - db/migrate/20250912084944_add_send_type_to_sms_log.rb
2779
2818
  - db/migrate/20250930094228_add_application_id_to_cm_pin_codes.rb
2780
2819
  - db/migrate/20250930100657_add_settings_to_spree_oauth_applications.rb
2820
+ - db/migrate/20251008064344_add_route_id_to_cm_trips.rb
2821
+ - db/migrate/20251009033331_add_registered_by_to_spree_users.rb
2822
+ - db/migrate/20251009073040_add_lock_version_to_cm_routes.rb
2823
+ - db/migrate/20251009073929_add_lock_version_to_cm_vendor_routes.rb
2781
2824
  - docker-compose.yml
2782
2825
  - docs/api/scoped-access-token-endpoints.md
2783
2826
  - docs/option_types/attr_types.md
@@ -2857,6 +2900,7 @@ files:
2857
2900
  - lib/spree_cm_commissioner/test_helper/factories/reserved_block_factory.rb
2858
2901
  - lib/spree_cm_commissioner/test_helper/factories/role.rb
2859
2902
  - lib/spree_cm_commissioner/test_helper/factories/role_permission_factory.rb
2903
+ - lib/spree_cm_commissioner/test_helper/factories/route_factory.rb
2860
2904
  - lib/spree_cm_commissioner/test_helper/factories/saved_guest_factory.rb
2861
2905
  - lib/spree_cm_commissioner/test_helper/factories/seat_layout_factory.rb
2862
2906
  - lib/spree_cm_commissioner/test_helper/factories/seat_section_factory.rb
@@ -2886,6 +2930,7 @@ files:
2886
2930
  - lib/spree_cm_commissioner/test_helper/factories/vendor_logo_factory.rb
2887
2931
  - lib/spree_cm_commissioner/test_helper/factories/vendor_photo_factory.rb
2888
2932
  - lib/spree_cm_commissioner/test_helper/factories/vendor_place_factory.rb
2933
+ - lib/spree_cm_commissioner/test_helper/factories/vendor_route_factory.rb
2889
2934
  - lib/spree_cm_commissioner/test_helper/factories/video_on_demand_factory.rb
2890
2935
  - lib/spree_cm_commissioner/test_helper/factories/webhook_subscriber_factory.rb
2891
2936
  - lib/spree_cm_commissioner/test_helper/factories/webhook_subscriber_rule_factory.rb
@@ -2895,6 +2940,7 @@ files:
2895
2940
  - lib/spree_cm_commissioner/trip_result.rb
2896
2941
  - lib/spree_cm_commissioner/user_session_jwt_token.rb
2897
2942
  - lib/spree_cm_commissioner/version.rb
2943
+ - lib/tasks/backfill_confirmed_at.rake
2898
2944
  - lib/tasks/create_default_non_permanent_inventory_items.rake
2899
2945
  - lib/tasks/customer_notification_cron_scheduler.rake
2900
2946
  - lib/tasks/ensure_correct_product_type.rake
@@ -2938,9 +2984,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
2938
2984
  version: '2.7'
2939
2985
  required_rubygems_version: !ruby/object:Gem::Requirement
2940
2986
  requirements:
2941
- - - ">"
2987
+ - - ">="
2942
2988
  - !ruby/object:Gem::Version
2943
- version: 1.3.1
2989
+ version: '0'
2944
2990
  requirements:
2945
2991
  - none
2946
2992
  rubygems_version: 3.4.1