spree_cm_commissioner 2.3.2.pre.pre2 → 2.3.2.pre.pre5

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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/app/controllers/spree/api/v2/storefront/intercity_taxi/draft_orders_controller.rb +36 -36
  4. data/app/controllers/spree/api/v2/storefront/popular_route_places_controller.rb +63 -0
  5. data/app/controllers/spree/api/v2/storefront/route_places_controller.rb +68 -0
  6. data/app/controllers/spree/api/v2/tenant/intercity_taxi/draft_orders_controller.rb +37 -37
  7. data/app/controllers/spree/api/v2/tenant/trip_places_controller.rb +5 -11
  8. data/app/controllers/spree/api/v2/tenant/trip_search_controller.rb +1 -1
  9. data/app/controllers/spree/api/v2/tenant/trips_controller.rb +8 -8
  10. data/app/factory/spree_cm_commissioner/order_telegram_message_factory.rb +12 -0
  11. data/app/finders/spree_cm_commissioner/places/find_with_route.rb +43 -0
  12. data/app/finders/spree_cm_commissioner/routes/find_popular.rb +25 -0
  13. data/app/mailers/spree/order_mailer_decorator.rb +8 -6
  14. data/app/models/concerns/spree_cm_commissioner/line_item_transitable.rb +34 -89
  15. data/app/models/concerns/spree_cm_commissioner/service_recommendations.rb +2 -2
  16. data/app/models/spree_cm_commissioner/adjustment_decorator.rb +1 -1
  17. data/app/models/spree_cm_commissioner/calculators/extra_drop_off_distance.rb +15 -0
  18. data/app/models/spree_cm_commissioner/calculators/extra_pick_up_distance.rb +15 -0
  19. data/app/models/spree_cm_commissioner/order_decorator.rb +1 -1
  20. data/app/models/spree_cm_commissioner/place.rb +7 -0
  21. data/app/models/spree_cm_commissioner/pricing_action.rb +27 -0
  22. data/app/models/spree_cm_commissioner/pricing_model.rb +18 -0
  23. data/app/models/spree_cm_commissioner/pricing_model_variant.rb +6 -0
  24. data/app/models/spree_cm_commissioner/pricing_rule.rb +15 -0
  25. data/app/models/spree_cm_commissioner/pricing_rule_group.rb +20 -0
  26. data/app/models/spree_cm_commissioner/pricing_rules/extra_drop_off_distance.rb +10 -0
  27. data/app/models/spree_cm_commissioner/pricing_rules/extra_pick_up_distance.rb +12 -0
  28. data/app/models/spree_cm_commissioner/pricing_rules/nationality.rb +35 -0
  29. data/app/models/spree_cm_commissioner/tenant.rb +4 -0
  30. data/app/models/spree_cm_commissioner/variant_decorator.rb +3 -0
  31. data/app/models/spree_cm_commissioner/vendor_decorator.rb +1 -0
  32. data/app/request_schemas/spree_cm_commissioner/intercity_taxi_draft_order_update_schema.rb +22 -3
  33. data/app/request_schemas/spree_cm_commissioner/route_places_request_schema.rb +12 -0
  34. data/app/serializers/spree/v2/storefront/place_serializer.rb +3 -2
  35. data/app/serializers/spree/v2/tenant/cart_serializer.rb +1 -0
  36. data/app/serializers/spree/v2/tenant/intercity_taxi_cart_serializer.rb +12 -0
  37. data/app/serializers/spree/v2/tenant/line_item_serializer.rb +1 -0
  38. data/app/serializers/spree/v2/tenant/trip_place_serializer.rb +8 -0
  39. data/app/serializers/spree/v2/tenant/trip_query_result_serializer.rb +8 -0
  40. data/app/serializers/spree/v2/tenant/trip_serializer.rb +8 -0
  41. data/app/serializers/spree_cm_commissioner/v2/storefront/intercity_taxi_line_item_serializer.rb +17 -18
  42. data/app/serializers/spree_cm_commissioner/v2/storefront/route_serializer.rb +12 -0
  43. data/app/services/spree_cm_commissioner/intercity_taxi_order/create.rb +11 -22
  44. data/app/services/spree_cm_commissioner/intercity_taxi_order/update.rb +32 -11
  45. data/app/services/spree_cm_commissioner/pricing_models/apply.rb +51 -0
  46. data/app/services/spree_cm_commissioner/pricing_rules/build_params.rb +53 -0
  47. data/app/services/spree_cm_commissioner/pricing_rules/build_template.rb +27 -0
  48. data/app/services/spree_cm_commissioner/pricing_rules/create.rb +10 -0
  49. data/app/services/spree_cm_commissioner/pricing_rules/update.rb +11 -0
  50. data/app/services/spree_cm_commissioner/vendor_places/base.rb +24 -0
  51. data/app/services/spree_cm_commissioner/vendor_places/bulk_create.rb +70 -0
  52. data/app/services/spree_cm_commissioner/vendor_places/create_with_google_map_data.rb +85 -0
  53. data/app/services/spree_cm_commissioner/vendor_places/update.rb +56 -0
  54. data/app/views/spree/order_mailer/confirm_email.html.erb +1 -1
  55. data/app/views/spree_cm_commissioner/order_mailer/_mailer_stylesheets.html.erb +14 -13
  56. data/app/views/spree_cm_commissioner/order_mailer/tenant/_greeting.html.erb +6 -4
  57. data/config/routes.rb +4 -10
  58. data/db/migrate/20250915075830_create_spree_cm_commissioner_pricing_models.rb +17 -0
  59. data/db/migrate/20250915080733_create_spree_cm_commissioner_pricing_model_variants.rb +14 -0
  60. data/db/migrate/20251003082144_create_spree_cm_commissioner_pricing_rule_groups.rb +16 -0
  61. data/db/migrate/20251003093408_create_spree_cm_commissioner_pricing_rule.rb +19 -0
  62. data/db/migrate/20251003093643_create_spree_cm_commissioner_pricing_action.rb +14 -0
  63. data/db/migrate/20251119093000_add_tenant_id_to_cm_vendor_places.rb +2 -1
  64. data/lib/spree_cm_commissioner/intercity_taxi/distance.rb +38 -0
  65. data/lib/spree_cm_commissioner/intercity_taxi/map_place.rb +31 -0
  66. data/lib/spree_cm_commissioner/test_helper/factories/pricing_action_factory.rb +5 -0
  67. data/lib/spree_cm_commissioner/test_helper/factories/pricing_model_factory.rb +8 -0
  68. data/lib/spree_cm_commissioner/test_helper/factories/pricing_rule_factory.rb +17 -0
  69. data/lib/spree_cm_commissioner/test_helper/factories/pricing_rule_group_factory.rb +8 -0
  70. data/lib/spree_cm_commissioner/version.rb +1 -1
  71. data/lib/spree_cm_commissioner.rb +2 -0
  72. metadata +42 -2
@@ -0,0 +1,19 @@
1
+ class CreateSpreeCmCommissionerPricingRule < ActiveRecord::Migration[7.0]
2
+ def change
3
+ create_table :cm_pricing_rules, if_not_exists: true do |t|
4
+ t.references :pricing_rule_group, null: false, foreign_key: { to_table: :cm_pricing_rule_groups }
5
+ t.references :product, null: true, foreign_key: { to_table: :spree_products }
6
+ t.references :variant, null: true, foreign_key: { to_table: :spree_variants }
7
+ t.string :type, null: false
8
+ t.jsonb :public_metadata
9
+ t.jsonb :private_metadata
10
+ t.integer :position, null: false, default: 0
11
+
12
+ t.timestamps
13
+ end
14
+
15
+ add_index :cm_pricing_rules, :position, name: 'idx_pricing_rules_on_position'
16
+ add_index :cm_pricing_rules, [:pricing_rule_group_id, :product_id], name: 'idx_pricing_rules_on_group_product'
17
+ add_index :cm_pricing_rules, [:pricing_rule_group_id, :variant_id], name: 'idx_pricing_rules_on_group_variant'
18
+ end
19
+ end
@@ -0,0 +1,14 @@
1
+ class CreateSpreeCmCommissionerPricingAction < ActiveRecord::Migration[7.0]
2
+ def change
3
+ create_table :cm_pricing_actions, if_not_exists: true do |t|
4
+ t.references :pricing_rule_group, null: false, foreign_key: { to_table: :cm_pricing_rule_groups }
5
+ t.references :product, null: true, foreign_key: { to_table: :spree_products }
6
+ t.references :variant, null: true, foreign_key: { to_table: :spree_variants }
7
+
8
+ t.timestamps
9
+ end
10
+
11
+ add_index :cm_pricing_actions, [:pricing_rule_group_id, :product_id], name: 'idx_pricing_actions_on_group_product'
12
+ add_index :cm_pricing_actions, [:pricing_rule_group_id, :variant_id], name: 'idx_pricing_actions_on_group_variant'
13
+ end
14
+ end
@@ -1,7 +1,8 @@
1
1
  class AddTenantIdToCmVendorPlaces < ActiveRecord::Migration[7.0]
2
2
  def change
3
3
  add_column :cm_vendor_places, :tenant_id, :integer, if_not_exists: true
4
+ # Why: VendorPlace#before_save sets tenant_id from vendor; tenant APIs (TripPlacesController) and TripQuery
5
+ # join on vendor_places scoped by tenant, so this speeds tenant-scoped lookups
4
6
  add_index :cm_vendor_places, :tenant_id, if_not_exists: true
5
- add_index :cm_vendor_places, %i[tenant_id vendor_id], if_not_exists: true, name: 'index_cm_vendor_places_on_tenant_and_vendor'
6
7
  end
7
8
  end
@@ -0,0 +1,38 @@
1
+ module SpreeCmCommissioner
2
+ module IntercityTaxi
3
+ class Distance
4
+ attr_accessor :distance_km, :ordered_points, :estimated_time_minutes, :base_km,
5
+ :detour_pickup_km, :detour_dropoff_km, :extra_pickup_km, :extra_dropoff_km
6
+
7
+ def initialize(options = {})
8
+ options = options.stringify_keys if options.is_a?(Hash)
9
+
10
+ @distance_km = options['distance_km']&.to_f
11
+ @ordered_points = options['ordered_points']
12
+ @estimated_time_minutes = options['estimated_time_minutes']&.to_i
13
+ @base_km = options['base_km']&.to_f
14
+ @detour_pickup_km = options['detour_pickup_km']&.to_f
15
+ @detour_dropoff_km = options['detour_dropoff_km']&.to_f
16
+ @extra_pickup_km = options['extra_pickup_km']&.to_f
17
+ @extra_dropoff_km = options['extra_dropoff_km']&.to_f
18
+ end
19
+
20
+ def self.from_hash(hash)
21
+ new(hash || {})
22
+ end
23
+
24
+ def to_h
25
+ {
26
+ 'distance_km' => @distance_km,
27
+ 'ordered_points' => @ordered_points,
28
+ 'estimated_time_minutes' => @estimated_time_minutes,
29
+ 'base_km' => @base_km,
30
+ 'detour_pickup_km' => @detour_pickup_km,
31
+ 'detour_dropoff_km' => @detour_dropoff_km,
32
+ 'extra_pickup_km' => @extra_pickup_km,
33
+ 'extra_dropoff_km' => @extra_dropoff_km
34
+ }.compact
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,31 @@
1
+ module SpreeCmCommissioner
2
+ module IntercityTaxi
3
+ class MapPlace
4
+ attr_accessor :place_name, :lat, :lng, :oob_confirmed
5
+
6
+ def initialize(options = {})
7
+ options = options.stringify_keys if options.is_a?(Hash)
8
+
9
+ @place_name = options['place_name']
10
+ @lat = options['lat']&.to_f
11
+ @lng = options['lng']&.to_f
12
+
13
+ # Normalize truthy/falsey values ("true", "1", 1, etc.) to a real boolean.
14
+ @oob_confirmed = ActiveModel::Type::Boolean.new.cast(options['oob_confirmed'])
15
+ end
16
+
17
+ def self.from_hash(hash)
18
+ new(hash || {})
19
+ end
20
+
21
+ def to_h
22
+ {
23
+ 'place_name' => @place_name,
24
+ 'lat' => @lat,
25
+ 'lng' => @lng,
26
+ 'oob_confirmed' => @oob_confirmed
27
+ }.compact
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,5 @@
1
+ FactoryBot.define do
2
+ factory :pricing_action, class: 'SpreeCmCommissioner::PricingAction' do
3
+ association :pricing_rule_group, factory: :pricing_rule_group
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ FactoryBot.define do
2
+ factory :cm_pricing_model, class: "SpreeCmCommissioner::PricingModel" do
3
+ association :vendor, factory: :cm_vendor
4
+ sequence(:name) { |n| "Pricing Model #{n}" }
5
+ description { "Test pricing model description" }
6
+ status { 'active' }
7
+ end
8
+ end
@@ -0,0 +1,17 @@
1
+ FactoryBot.define do
2
+ factory :pricing_rule_nationality, class: 'SpreeCmCommissioner::PricingRules::Nationality' do
3
+ association :pricing_rule_group, factory: :pricing_rule_group
4
+ rule_type { 'must' }
5
+ nationalities { ["Cambodian"] }
6
+ end
7
+
8
+ factory :pricing_rule_extra_pick_up_distance, class: 'SpreeCmCommissioner::PricingRules::ExtraPickUpDistance' do
9
+ association :pricing_rule_group, factory: :pricing_rule_group
10
+ min_distance { 5 }
11
+ end
12
+
13
+ factory :pricing_rule_extra_drop_off_distance, class: 'SpreeCmCommissioner::PricingRules::ExtraDropOffDistance' do
14
+ association :pricing_rule_group, factory: :pricing_rule_group
15
+ min_distance { 5 }
16
+ end
17
+ end
@@ -0,0 +1,8 @@
1
+ FactoryBot.define do
2
+ factory :pricing_rule_group, class: 'SpreeCmCommissioner::PricingRuleGroup' do
3
+ association :pricing_model, factory: :cm_pricing_model
4
+ sequence(:name) { |n| "Rule Group #{n}" }
5
+ match_type { 'all' }
6
+ position { 0 }
7
+ end
8
+ end
@@ -1,5 +1,5 @@
1
1
  module SpreeCmCommissioner
2
- VERSION = '2.3.2.pre.pre2'.freeze
2
+ VERSION = '2.3.2.pre.pre5'.freeze
3
3
 
4
4
  module_function
5
5
 
@@ -23,6 +23,8 @@ require 'spree_cm_commissioner/trip_query_result'
23
23
  require 'spree_cm_commissioner/cached_inventory_item'
24
24
  require 'spree_cm_commissioner/transit/leg'
25
25
  require 'spree_cm_commissioner/transit/seat_selection'
26
+ require 'spree_cm_commissioner/intercity_taxi/map_place'
27
+ require 'spree_cm_commissioner/intercity_taxi/distance'
26
28
 
27
29
  require 'activerecord_multi_tenant'
28
30
  require 'google/cloud/recaptcha_enterprise'
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.3.2.pre.pre2
4
+ version: 2.3.2.pre.pre5
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-12-03 00:00:00.000000000 Z
11
+ date: 2025-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -969,11 +969,13 @@ files:
969
969
  - app/controllers/spree/api/v2/storefront/pin_code_generators_controller.rb
970
970
  - app/controllers/spree/api/v2/storefront/pin_code_otp_checkers_controller.rb
971
971
  - app/controllers/spree/api/v2/storefront/pin_code_otp_generators_controller.rb
972
+ - app/controllers/spree/api/v2/storefront/popular_route_places_controller.rb
972
973
  - app/controllers/spree/api/v2/storefront/profile_images_controller.rb
973
974
  - app/controllers/spree/api/v2/storefront/provinces_controller.rb
974
975
  - app/controllers/spree/api/v2/storefront/qr_urls_controller.rb
975
976
  - app/controllers/spree/api/v2/storefront/queue_cart/line_items_controller.rb
976
977
  - app/controllers/spree/api/v2/storefront/reset_passwords_controller.rb
978
+ - app/controllers/spree/api/v2/storefront/route_places_controller.rb
977
979
  - app/controllers/spree/api/v2/storefront/s3_signed_urls_controller.rb
978
980
  - app/controllers/spree/api/v2/storefront/seat_layouts_controller.rb
979
981
  - app/controllers/spree/api/v2/storefront/self_check_in_controller.rb
@@ -1128,7 +1130,9 @@ files:
1128
1130
  - app/finders/spree_cm_commissioner/orders/find.rb
1129
1131
  - app/finders/spree_cm_commissioner/orders/find_by_state.rb
1130
1132
  - app/finders/spree_cm_commissioner/payment_methods/group_by_bank.rb
1133
+ - app/finders/spree_cm_commissioner/places/find_with_route.rb
1131
1134
  - app/finders/spree_cm_commissioner/products/find_decorator.rb
1135
+ - app/finders/spree_cm_commissioner/routes/find_popular.rb
1132
1136
  - app/helpers/spree/admin/base_helper_decorator.rb
1133
1137
  - app/helpers/spree/admin/google_wallets_helper.rb
1134
1138
  - app/helpers/spree/base_helper_decorator.rb
@@ -1402,6 +1406,8 @@ files:
1402
1406
  - app/models/spree_cm_commissioner/base.rb
1403
1407
  - app/models/spree_cm_commissioner/blazer_queryable.rb
1404
1408
  - app/models/spree_cm_commissioner/block.rb
1409
+ - app/models/spree_cm_commissioner/calculators/extra_drop_off_distance.rb
1410
+ - app/models/spree_cm_commissioner/calculators/extra_pick_up_distance.rb
1405
1411
  - app/models/spree_cm_commissioner/check_in.rb
1406
1412
  - app/models/spree_cm_commissioner/check_in_ability.rb
1407
1413
  - app/models/spree_cm_commissioner/check_in_record.rb
@@ -1487,6 +1493,14 @@ files:
1487
1493
  - app/models/spree_cm_commissioner/pin_code_update_user_login.rb
1488
1494
  - app/models/spree_cm_commissioner/place.rb
1489
1495
  - app/models/spree_cm_commissioner/price_decorator.rb
1496
+ - app/models/spree_cm_commissioner/pricing_action.rb
1497
+ - app/models/spree_cm_commissioner/pricing_model.rb
1498
+ - app/models/spree_cm_commissioner/pricing_model_variant.rb
1499
+ - app/models/spree_cm_commissioner/pricing_rule.rb
1500
+ - app/models/spree_cm_commissioner/pricing_rule_group.rb
1501
+ - app/models/spree_cm_commissioner/pricing_rules/extra_drop_off_distance.rb
1502
+ - app/models/spree_cm_commissioner/pricing_rules/extra_pick_up_distance.rb
1503
+ - app/models/spree_cm_commissioner/pricing_rules/nationality.rb
1490
1504
  - app/models/spree_cm_commissioner/product_completion_step.rb
1491
1505
  - app/models/spree_cm_commissioner/product_completion_step_banner.rb
1492
1506
  - app/models/spree_cm_commissioner/product_completion_steps/chatrace_telegram.rb
@@ -1757,6 +1771,7 @@ files:
1757
1771
  - app/request_schemas/spree_cm_commissioner/intercity_taxi_draft_order_update_schema.rb
1758
1772
  - app/request_schemas/spree_cm_commissioner/inventory_item_schema.rb
1759
1773
  - app/request_schemas/spree_cm_commissioner/profile_image_request_schema.rb
1774
+ - app/request_schemas/spree_cm_commissioner/route_places_request_schema.rb
1760
1775
  - app/request_schemas/spree_cm_commissioner/seat_layout_schema.rb
1761
1776
  - app/request_schemas/spree_cm_commissioner/trip_search_request_schema.rb
1762
1777
  - app/request_schemas/spree_cm_commissioner/user_account_linkage_request_schema.rb
@@ -1825,6 +1840,7 @@ files:
1825
1840
  - app/serializers/spree/v2/tenant/homepage_section_serializer.rb
1826
1841
  - app/serializers/spree/v2/tenant/id_card_serializer.rb
1827
1842
  - app/serializers/spree/v2/tenant/image_serializer.rb
1843
+ - app/serializers/spree/v2/tenant/intercity_taxi_cart_serializer.rb
1828
1844
  - app/serializers/spree/v2/tenant/line_item_serializer.rb
1829
1845
  - app/serializers/spree/v2/tenant/notification_serializer.rb
1830
1846
  - app/serializers/spree/v2/tenant/option_type_serializer.rb
@@ -1842,6 +1858,9 @@ files:
1842
1858
  - app/serializers/spree/v2/tenant/taxon_serializer.rb
1843
1859
  - app/serializers/spree/v2/tenant/taxonomy_serializer.rb
1844
1860
  - app/serializers/spree/v2/tenant/ticket_serializer.rb
1861
+ - app/serializers/spree/v2/tenant/trip_place_serializer.rb
1862
+ - app/serializers/spree/v2/tenant/trip_query_result_serializer.rb
1863
+ - app/serializers/spree/v2/tenant/trip_serializer.rb
1845
1864
  - app/serializers/spree/v2/tenant/user_contact_serializer.rb
1846
1865
  - app/serializers/spree/v2/tenant/user_device_token_serializer.rb
1847
1866
  - app/serializers/spree/v2/tenant/user_identity_provider_serializer.rb
@@ -1906,6 +1925,7 @@ files:
1906
1925
  - app/serializers/spree_cm_commissioner/v2/storefront/qr_url_serializer.rb
1907
1926
  - app/serializers/spree_cm_commissioner/v2/storefront/reserved_block_serializer.rb
1908
1927
  - app/serializers/spree_cm_commissioner/v2/storefront/reset_password_serializer.rb
1928
+ - app/serializers/spree_cm_commissioner/v2/storefront/route_serializer.rb
1909
1929
  - app/serializers/spree_cm_commissioner/v2/storefront/saved_guest_serializer.rb
1910
1930
  - app/serializers/spree_cm_commissioner/v2/storefront/seat_layout_serializer.rb
1911
1931
  - app/serializers/spree_cm_commissioner/v2/storefront/seat_section_serializer.rb
@@ -1971,6 +1991,11 @@ files:
1971
1991
  - app/services/spree_cm_commissioner/organizer/export_invite_guest_csv_service.rb
1972
1992
  - app/services/spree_cm_commissioner/payment_method_type_mapper.rb
1973
1993
  - app/services/spree_cm_commissioner/penalty_calculator.rb
1994
+ - app/services/spree_cm_commissioner/pricing_models/apply.rb
1995
+ - app/services/spree_cm_commissioner/pricing_rules/build_params.rb
1996
+ - app/services/spree_cm_commissioner/pricing_rules/build_template.rb
1997
+ - app/services/spree_cm_commissioner/pricing_rules/create.rb
1998
+ - app/services/spree_cm_commissioner/pricing_rules/update.rb
1974
1999
  - app/services/spree_cm_commissioner/role_permissions_constructor.rb
1975
2000
  - app/services/spree_cm_commissioner/role_permissions_loader.rb
1976
2001
  - app/services/spree_cm_commissioner/routes/base_update_order_metrics.rb
@@ -1988,6 +2013,10 @@ files:
1988
2013
  - app/services/spree_cm_commissioner/user_authenticator.rb
1989
2014
  - app/services/spree_cm_commissioner/user_roles_assigner.rb
1990
2015
  - app/services/spree_cm_commissioner/users/incomplete_guest_checker_service.rb
2016
+ - app/services/spree_cm_commissioner/vendor_places/base.rb
2017
+ - app/services/spree_cm_commissioner/vendor_places/bulk_create.rb
2018
+ - app/services/spree_cm_commissioner/vendor_places/create_with_google_map_data.rb
2019
+ - app/services/spree_cm_commissioner/vendor_places/update.rb
1991
2020
  - app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb
1992
2021
  - app/services/spree_cm_commissioner/waiting_room_system_metadata_setter.rb
1993
2022
  - app/services/spree_cm_commissioner/webhooks/subscribers/handle_request_decorator.rb
@@ -2851,8 +2880,13 @@ files:
2851
2880
  - db/migrate/20250911174607_add_metadata_columns_to_cm_vehicles.rb
2852
2881
  - db/migrate/20250911174653_add_metadata_columns_to_cm_trips.rb
2853
2882
  - db/migrate/20250912084944_add_send_type_to_sms_log.rb
2883
+ - db/migrate/20250915075830_create_spree_cm_commissioner_pricing_models.rb
2884
+ - db/migrate/20250915080733_create_spree_cm_commissioner_pricing_model_variants.rb
2854
2885
  - db/migrate/20250930094228_add_application_id_to_cm_pin_codes.rb
2855
2886
  - db/migrate/20250930100657_add_settings_to_spree_oauth_applications.rb
2887
+ - db/migrate/20251003082144_create_spree_cm_commissioner_pricing_rule_groups.rb
2888
+ - db/migrate/20251003093408_create_spree_cm_commissioner_pricing_rule.rb
2889
+ - db/migrate/20251003093643_create_spree_cm_commissioner_pricing_action.rb
2856
2890
  - db/migrate/20251008064344_add_route_id_to_cm_trips.rb
2857
2891
  - db/migrate/20251009033331_add_registered_by_to_spree_users.rb
2858
2892
  - db/migrate/20251009073040_add_lock_version_to_cm_routes.rb
@@ -2883,6 +2917,8 @@ files:
2883
2917
  - lib/spree_cm_commissioner/calendar_event.rb
2884
2918
  - lib/spree_cm_commissioner/engine.rb
2885
2919
  - lib/spree_cm_commissioner/factories.rb
2920
+ - lib/spree_cm_commissioner/intercity_taxi/distance.rb
2921
+ - lib/spree_cm_commissioner/intercity_taxi/map_place.rb
2886
2922
  - lib/spree_cm_commissioner/jwt_token.rb
2887
2923
  - lib/spree_cm_commissioner/line_item_jwt_token.rb
2888
2924
  - lib/spree_cm_commissioner/order_jwt_token.rb
@@ -2931,6 +2967,10 @@ files:
2931
2967
  - lib/spree_cm_commissioner/test_helper/factories/permission.rb
2932
2968
  - lib/spree_cm_commissioner/test_helper/factories/pin_code_factory.rb
2933
2969
  - lib/spree_cm_commissioner/test_helper/factories/place_factory.rb
2970
+ - lib/spree_cm_commissioner/test_helper/factories/pricing_action_factory.rb
2971
+ - lib/spree_cm_commissioner/test_helper/factories/pricing_model_factory.rb
2972
+ - lib/spree_cm_commissioner/test_helper/factories/pricing_rule_factory.rb
2973
+ - lib/spree_cm_commissioner/test_helper/factories/pricing_rule_group_factory.rb
2934
2974
  - lib/spree_cm_commissioner/test_helper/factories/product_completion_step_banner_factory.rb
2935
2975
  - lib/spree_cm_commissioner/test_helper/factories/product_completion_step_factory.rb
2936
2976
  - lib/spree_cm_commissioner/test_helper/factories/product_factory.rb