spree_cm_commissioner 2.3.2.pre.pre6 → 2.3.2

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 (75) 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 +11 -52
  4. data/app/factory/spree_cm_commissioner/order_telegram_message_factory.rb +0 -12
  5. data/app/mailers/spree/order_mailer_decorator.rb +6 -8
  6. data/app/models/concerns/spree_cm_commissioner/line_item_transitable.rb +89 -34
  7. data/app/models/concerns/spree_cm_commissioner/service_recommendations.rb +2 -2
  8. data/app/models/spree_cm_commissioner/adjustment_decorator.rb +1 -1
  9. data/app/models/spree_cm_commissioner/order_decorator.rb +1 -1
  10. data/app/models/spree_cm_commissioner/place.rb +0 -7
  11. data/app/models/spree_cm_commissioner/tenant.rb +0 -4
  12. data/app/models/spree_cm_commissioner/variant_decorator.rb +0 -3
  13. data/app/models/spree_cm_commissioner/vendor_decorator.rb +0 -1
  14. data/app/models/spree_cm_commissioner/vendor_place.rb +0 -9
  15. data/app/queries/spree_cm_commissioner/trip_query.rb +17 -23
  16. data/app/serializers/spree/v2/storefront/place_serializer.rb +2 -3
  17. data/app/serializers/spree/v2/tenant/cart_serializer.rb +0 -1
  18. data/app/serializers/spree/v2/tenant/line_item_serializer.rb +0 -1
  19. data/app/serializers/spree_cm_commissioner/v2/storefront/intercity_taxi_line_item_serializer.rb +18 -17
  20. data/app/services/spree_cm_commissioner/intercity_taxi_order/create.rb +23 -20
  21. data/app/services/spree_cm_commissioner/intercity_taxi_order/update.rb +72 -36
  22. data/app/views/spree/order_mailer/confirm_email.html.erb +1 -1
  23. data/app/views/spree_cm_commissioner/order_mailer/_mailer_stylesheets.html.erb +13 -14
  24. data/app/views/spree_cm_commissioner/order_mailer/tenant/_greeting.html.erb +4 -6
  25. data/config/routes.rb +1 -11
  26. data/lib/spree_cm_commissioner/version.rb +1 -1
  27. data/lib/spree_cm_commissioner.rb +0 -2
  28. metadata +4 -51
  29. data/app/controllers/spree/api/v2/storefront/popular_route_places_controller.rb +0 -63
  30. data/app/controllers/spree/api/v2/storefront/route_places_controller.rb +0 -68
  31. data/app/controllers/spree/api/v2/tenant/intercity_taxi/draft_orders_controller.rb +0 -81
  32. data/app/controllers/spree/api/v2/tenant/trip_places_controller.rb +0 -42
  33. data/app/controllers/spree/api/v2/tenant/trip_search_controller.rb +0 -103
  34. data/app/controllers/spree/api/v2/tenant/trips_controller.rb +0 -32
  35. data/app/finders/spree_cm_commissioner/places/find_with_route.rb +0 -43
  36. data/app/finders/spree_cm_commissioner/routes/find_popular.rb +0 -25
  37. data/app/models/spree_cm_commissioner/calculators/extra_drop_off_distance.rb +0 -15
  38. data/app/models/spree_cm_commissioner/calculators/extra_pick_up_distance.rb +0 -15
  39. data/app/models/spree_cm_commissioner/pricing_action.rb +0 -27
  40. data/app/models/spree_cm_commissioner/pricing_model.rb +0 -18
  41. data/app/models/spree_cm_commissioner/pricing_model_variant.rb +0 -6
  42. data/app/models/spree_cm_commissioner/pricing_rule.rb +0 -15
  43. data/app/models/spree_cm_commissioner/pricing_rule_group.rb +0 -20
  44. data/app/models/spree_cm_commissioner/pricing_rules/extra_drop_off_distance.rb +0 -10
  45. data/app/models/spree_cm_commissioner/pricing_rules/extra_pick_up_distance.rb +0 -12
  46. data/app/models/spree_cm_commissioner/pricing_rules/nationality.rb +0 -35
  47. data/app/request_schemas/spree_cm_commissioner/intercity_taxi_draft_order_schema.rb +0 -10
  48. data/app/request_schemas/spree_cm_commissioner/intercity_taxi_draft_order_update_schema.rb +0 -29
  49. data/app/request_schemas/spree_cm_commissioner/route_places_request_schema.rb +0 -12
  50. data/app/serializers/spree/v2/tenant/intercity_taxi_cart_serializer.rb +0 -12
  51. data/app/serializers/spree/v2/tenant/trip_place_serializer.rb +0 -8
  52. data/app/serializers/spree/v2/tenant/trip_query_result_serializer.rb +0 -8
  53. data/app/serializers/spree/v2/tenant/trip_serializer.rb +0 -8
  54. data/app/serializers/spree_cm_commissioner/v2/storefront/route_serializer.rb +0 -12
  55. data/app/services/spree_cm_commissioner/pricing_models/apply.rb +0 -51
  56. data/app/services/spree_cm_commissioner/pricing_rules/build_params.rb +0 -53
  57. data/app/services/spree_cm_commissioner/pricing_rules/build_template.rb +0 -27
  58. data/app/services/spree_cm_commissioner/pricing_rules/create.rb +0 -10
  59. data/app/services/spree_cm_commissioner/pricing_rules/update.rb +0 -11
  60. data/app/services/spree_cm_commissioner/vendor_places/base.rb +0 -24
  61. data/app/services/spree_cm_commissioner/vendor_places/bulk_create.rb +0 -70
  62. data/app/services/spree_cm_commissioner/vendor_places/create_with_google_map_data.rb +0 -85
  63. data/app/services/spree_cm_commissioner/vendor_places/update.rb +0 -56
  64. data/db/migrate/20250915075830_create_spree_cm_commissioner_pricing_models.rb +0 -17
  65. data/db/migrate/20250915080733_create_spree_cm_commissioner_pricing_model_variants.rb +0 -14
  66. data/db/migrate/20251003082144_create_spree_cm_commissioner_pricing_rule_groups.rb +0 -16
  67. data/db/migrate/20251003093408_create_spree_cm_commissioner_pricing_rule.rb +0 -19
  68. data/db/migrate/20251003093643_create_spree_cm_commissioner_pricing_action.rb +0 -14
  69. data/db/migrate/20251119093000_add_tenant_id_to_cm_vendor_places.rb +0 -8
  70. data/lib/spree_cm_commissioner/intercity_taxi/distance.rb +0 -38
  71. data/lib/spree_cm_commissioner/intercity_taxi/map_place.rb +0 -31
  72. data/lib/spree_cm_commissioner/test_helper/factories/pricing_action_factory.rb +0 -5
  73. data/lib/spree_cm_commissioner/test_helper/factories/pricing_model_factory.rb +0 -8
  74. data/lib/spree_cm_commissioner/test_helper/factories/pricing_rule_factory.rb +0 -17
  75. data/lib/spree_cm_commissioner/test_helper/factories/pricing_rule_group_factory.rb +0 -8
@@ -1,19 +1,35 @@
1
1
  module SpreeCmCommissioner
2
2
  module IntercityTaxiOrder
3
3
  class Create
4
- prepend ::Spree::ServiceModule::Base
4
+ attr_reader :trip_id, :from_date, :to_date, :user_id, :quantity
5
5
 
6
- def call(trip_id:, from_date:, to_date:, user: nil, quantity: 1)
7
- validate!(trip_id: trip_id, from_date: from_date, to_date: to_date, quantity: quantity)
6
+ def self.call(trip_id:, from_date:, to_date:, user_id: nil, quantity: 1)
7
+ new(
8
+ trip_id: trip_id,
9
+ from_date: from_date,
10
+ to_date: to_date,
11
+ user_id: user_id,
12
+ quantity: quantity
13
+ ).call
14
+ end
15
+
16
+ def initialize(trip_id:, from_date:, to_date:, user_id:, quantity:)
17
+ @trip_id = trip_id
18
+ @from_date = from_date
19
+ @to_date = to_date
20
+ @user_id = user_id
21
+ @quantity = quantity.to_i <= 0 ? 1 : quantity.to_i
22
+ end
8
23
 
9
- quantity = quantity.to_i
24
+ def call
25
+ validate!
10
26
 
11
- order = ActiveRecord::Base.transaction do
27
+ ActiveRecord::Base.transaction do
12
28
  trip = SpreeCmCommissioner::Trip.find(trip_id)
13
29
  variant = trip.product.variants.first
14
30
  raise ArgumentError, 'No variant found for trip' if variant.blank?
15
31
 
16
- order = Spree::Order.new(state: 'cart', use_billing: true, user: user)
32
+ order = Spree::Order.new(state: 'cart', use_billing: true, user_id: user_id)
17
33
 
18
34
  line_item = order.line_items.new(
19
35
  variant_id: variant.id,
@@ -26,39 +42,26 @@ module SpreeCmCommissioner
26
42
  )
27
43
 
28
44
  build_guests_for!(line_item, quantity)
29
- assign_saved_guests_to_line_item(line_item)
30
45
 
31
46
  order.save!
32
47
  order.update_with_updater!
33
48
 
34
49
  order
35
50
  end
36
-
37
- success(order)
38
- rescue StandardError => e
39
- failure(nil, e.message)
40
51
  end
41
52
 
42
53
  private
43
54
 
44
- def validate!(trip_id:, from_date:, to_date:, quantity:)
55
+ def validate!
45
56
  raise ArgumentError, 'trip_id is required' if trip_id.blank?
46
57
  raise ArgumentError, 'from_date is required' if from_date.blank?
47
58
  raise ArgumentError, 'to_date is required' if to_date.blank?
48
59
  raise ArgumentError, 'to_date must be after from_date' if from_date.present? && to_date.present? && to_date < from_date
49
- raise ArgumentError, 'quantity must be 1' if quantity.to_i != 1
50
60
  end
51
61
 
52
62
  def build_guests_for!(line_item, qty)
53
63
  Array.new(qty) { line_item.guests.new }
54
64
  end
55
-
56
- def assign_saved_guests_to_line_item(line_item)
57
- line_item.guests.each do |guest|
58
- saved_guest = SpreeCmCommissioner::SavedGuest.new
59
- guest.saved_guest = saved_guest
60
- end
61
- end
62
65
  end
63
66
  end
64
67
  end
@@ -1,42 +1,78 @@
1
1
  module SpreeCmCommissioner
2
2
  module IntercityTaxiOrder
3
3
  class Update
4
- prepend ::Spree::ServiceModule::Base
5
-
6
- def call(
7
- order:,
8
- remark: nil,
9
- pickup_map_place_attributes: nil,
10
- dropoff_map_place_attributes: nil,
11
- distance_attributes: nil
12
- )
13
- line_item = order.line_items.first
14
-
15
- raise ArgumentError, 'Order has no line items' if line_item.blank?
16
-
17
- if pickup_map_place_attributes.present?
18
- line_item.pickup_map_place = SpreeCmCommissioner::IntercityTaxi::MapPlace.new(
19
- pickup_map_place_attributes
20
- )
21
- end
22
-
23
- if dropoff_map_place_attributes.present?
24
- line_item.dropoff_map_place = SpreeCmCommissioner::IntercityTaxi::MapPlace.new(
25
- dropoff_map_place_attributes
26
- )
27
- end
28
-
29
- if distance_attributes.present?
30
- line_item.distance = SpreeCmCommissioner::IntercityTaxi::Distance.new(
31
- distance_attributes
32
- )
33
- end
34
-
35
- line_item.update!(remark: remark)
36
-
37
- success(order.reload)
38
- rescue StandardError => e
39
- failure(nil, e.message)
4
+ attr_reader :order_number, :params
5
+
6
+ def self.call(order_number:, params:)
7
+ new(order_number: order_number, params: params).call
8
+ end
9
+
10
+ def initialize(order_number:, params:)
11
+ @order_number = order_number
12
+ @params = ensure_parameters(params)
13
+ end
14
+
15
+ def call
16
+ order = Spree::Order.find_by!(number: order_number)
17
+ order.update!(order_params)
18
+
19
+ create_billing_address_if_missing(order)
20
+
21
+ order
22
+ end
23
+
24
+ private
25
+
26
+ def ensure_parameters(params)
27
+ return params if params.is_a?(::ActionController::Parameters)
28
+
29
+ ::ActionController::Parameters.new(params)
30
+ end
31
+
32
+ def create_billing_address_if_missing(order)
33
+ return if order.bill_address.present?
34
+
35
+ SpreeCmCommissioner::BillingAddressCreator.call(order: order)
36
+ end
37
+
38
+ def order_params
39
+ params.require(:order).permit(
40
+ :intel_phone_number,
41
+ :email,
42
+ line_items_attributes: [
43
+ :id,
44
+ :pickup_place_name,
45
+ :drop_off_place_name,
46
+ :from_date,
47
+ :pickup_lat,
48
+ :pickup_lng,
49
+ :pickup_oob_confirmed,
50
+ :drop_off_lat,
51
+ :drop_off_lng,
52
+ :drop_off_oob_confirmed,
53
+ :distance_km,
54
+ :ordered_points,
55
+ :base_km,
56
+ :detour_pickup_km,
57
+ :detour_dropoff_km,
58
+ :extra_pickup_km,
59
+ :extra_dropoff_km,
60
+ :extra_pickup_charge_usd,
61
+ :extra_dropoff_charge_usd,
62
+ :estimated_time_minutes,
63
+ :remark,
64
+ :passenger_count,
65
+ { guests_attributes: %i[
66
+ id
67
+ first_name
68
+ last_name
69
+ gender
70
+ nationality_id
71
+ age
72
+ ]
73
+ }
74
+ ]
75
+ )
40
76
  end
41
77
  end
42
78
  end
@@ -16,7 +16,7 @@
16
16
  </div>
17
17
  <% else %>
18
18
  <div class="f-fallback">
19
- <%= render 'spree_cm_commissioner/order_mailer/tenant/greeting', order: @order, logo: @logo, name: @name%>
19
+ <%= render 'spree_cm_commissioner/order_mailer/tenant/greeting', order: @order %>
20
20
  <div class="content">
21
21
  <%= render 'spree_cm_commissioner/order_mailer/order_total', order: @order %>
22
22
  <%= render 'spree_cm_commissioner/order_mailer/your_booking', order: @order, show_booking_header: true %>
@@ -74,9 +74,7 @@
74
74
  background-position: center;
75
75
  background-repeat: no-repeat;
76
76
  border-radius: 1.5625rem 1.5625rem 0 0;
77
- <% if @brand_color.present? %>
78
- background: <%= @brand_color %>;
79
- <% end %>
77
+ background: <%= @brand_color %>;
80
78
  }
81
79
  #confirm-email #greeting-card-1 p,
82
80
  #confirm-email #greeting-card-1 .header,
@@ -95,20 +93,21 @@
95
93
  margin-bottom: 0.625rem;
96
94
  }
97
95
  #confirm-email .icon-hang-meas {
98
- width: 50%;
99
- text-align: right;
96
+ width: 6.25rem;
97
+ height: 6.25rem;
98
+ border-radius: 50%;
99
+ background-color: #fff;
100
+ display: flex;
101
+ align-items: center;
102
+ justify-content: center;
103
+ overflow: hidden;
100
104
  }
105
+
101
106
  #confirm-email .icon-hang-meas img {
102
- width: 6.25rem;
103
- height: 6.25rem;
107
+ width: 100%;
108
+ height: 100%;
109
+ object-fit: cover;
104
110
  border-radius: 50%;
105
- background-color: #fff;
106
- display: inline-block;
107
- }
108
- #confirm-email .header h1 {
109
- margin: 0;
110
- color: #fff;
111
- width: 50%;
112
111
  }
113
112
 
114
113
  #confirm-email .header {
@@ -1,11 +1,9 @@
1
1
  <div id="greeting-card-1">
2
2
  <div>
3
3
  <div class="header">
4
- <h1><%= name %></h1>
5
- <% if logo.present? %>
6
- <div class="icon-hang-meas">
7
- <img src="<%= logo %>" alt="<%= name %> Logo">
8
- </div>
4
+ <h1><%=@order.tenant.name %></h1>
5
+ <% if @vendor_logo_url.present? %>
6
+ <img src="<%= @vendor_logo_url %>" alt="Vendor Logo" class="icon-hang-meas">
9
7
  <% end %>
10
8
  </div>
11
9
  <div class="booking-confirm">
@@ -15,7 +13,7 @@
15
13
  <%= I18n.t('mail.order_mailer.hello', full_name: user_full_name(order)) %>
16
14
  </div>
17
15
  <div class="description">
18
- <%= I18n.t('mail.order_mailer.booking_event', order_number: order.number || 'NA') %>
16
+ <%= I18n.t('mail.order_mailer.booking_event', order_number: @order.number || 'NA') %>
19
17
  </div>
20
18
  </div>
21
19
  </div>
data/config/routes.rb CHANGED
@@ -550,14 +550,6 @@ Spree::Core::Engine.add_routes do
550
550
  resources :guest_card_classes
551
551
  resources :tickets, only: :index
552
552
 
553
- resources :trip_places, only: :index
554
- resources :trip_search, only: [:index]
555
- resources :trips, only: %i[show]
556
-
557
- namespace :intercity_taxi do
558
- resource :draft_orders, only: %i[create update]
559
- end
560
-
561
553
  resource :reset_passwords, only: [:update]
562
554
  resource :change_passwords, only: [:update]
563
555
  resource :user_contacts, only: [:update]
@@ -583,8 +575,6 @@ Spree::Core::Engine.add_routes do
583
575
  resources :trip_places
584
576
  resources :trip_search, only: [:index]
585
577
  resources :trips, only: %i[show]
586
- resources :route_places, only: [:index]
587
- resources :popular_route_places, only: [:index]
588
578
 
589
579
  namespace :queue_cart do
590
580
  resources :line_items, only: [:create]
@@ -699,7 +689,7 @@ Spree::Core::Engine.add_routes do
699
689
  resources :draft_orders, only: %i[create]
700
690
  end
701
691
  namespace :intercity_taxi do
702
- resource :draft_orders, only: %i[create update]
692
+ resources :draft_orders, only: %i[create update]
703
693
  end
704
694
  end
705
695
 
@@ -1,5 +1,5 @@
1
1
  module SpreeCmCommissioner
2
- VERSION = '2.3.2.pre.pre6'.freeze
2
+ VERSION = '2.3.2'.freeze
3
3
 
4
4
  module_function
5
5
 
@@ -23,8 +23,6 @@ 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'
28
26
 
29
27
  require 'activerecord_multi_tenant'
30
28
  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.pre6
4
+ version: 2.3.2
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-08 00:00:00.000000000 Z
11
+ date: 2025-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -969,13 +969,11 @@ 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
973
972
  - app/controllers/spree/api/v2/storefront/profile_images_controller.rb
974
973
  - app/controllers/spree/api/v2/storefront/provinces_controller.rb
975
974
  - app/controllers/spree/api/v2/storefront/qr_urls_controller.rb
976
975
  - app/controllers/spree/api/v2/storefront/queue_cart/line_items_controller.rb
977
976
  - app/controllers/spree/api/v2/storefront/reset_passwords_controller.rb
978
- - app/controllers/spree/api/v2/storefront/route_places_controller.rb
979
977
  - app/controllers/spree/api/v2/storefront/s3_signed_urls_controller.rb
980
978
  - app/controllers/spree/api/v2/storefront/seat_layouts_controller.rb
981
979
  - app/controllers/spree/api/v2/storefront/self_check_in_controller.rb
@@ -1015,7 +1013,6 @@ files:
1015
1013
  - app/controllers/spree/api/v2/tenant/guests_controller.rb
1016
1014
  - app/controllers/spree/api/v2/tenant/homepage_sections_controller.rb
1017
1015
  - app/controllers/spree/api/v2/tenant/id_cards_controller.rb
1018
- - app/controllers/spree/api/v2/tenant/intercity_taxi/draft_orders_controller.rb
1019
1016
  - app/controllers/spree/api/v2/tenant/line_items_controller.rb
1020
1017
  - app/controllers/spree/api/v2/tenant/notifications_controller.rb
1021
1018
  - app/controllers/spree/api/v2/tenant/order_histories_controller.rb
@@ -1028,9 +1025,6 @@ files:
1028
1025
  - app/controllers/spree/api/v2/tenant/s3_signed_urls_controller.rb
1029
1026
  - app/controllers/spree/api/v2/tenant/taxons_controller.rb
1030
1027
  - app/controllers/spree/api/v2/tenant/tickets_controller.rb
1031
- - app/controllers/spree/api/v2/tenant/trip_places_controller.rb
1032
- - app/controllers/spree/api/v2/tenant/trip_search_controller.rb
1033
- - app/controllers/spree/api/v2/tenant/trips_controller.rb
1034
1028
  - app/controllers/spree/api/v2/tenant/user_account_linkages_controller.rb
1035
1029
  - app/controllers/spree/api/v2/tenant/user_contacts_controller.rb
1036
1030
  - app/controllers/spree/api/v2/tenant/user_device_tokens_controller.rb
@@ -1130,9 +1124,7 @@ files:
1130
1124
  - app/finders/spree_cm_commissioner/orders/find.rb
1131
1125
  - app/finders/spree_cm_commissioner/orders/find_by_state.rb
1132
1126
  - app/finders/spree_cm_commissioner/payment_methods/group_by_bank.rb
1133
- - app/finders/spree_cm_commissioner/places/find_with_route.rb
1134
1127
  - app/finders/spree_cm_commissioner/products/find_decorator.rb
1135
- - app/finders/spree_cm_commissioner/routes/find_popular.rb
1136
1128
  - app/helpers/spree/admin/base_helper_decorator.rb
1137
1129
  - app/helpers/spree/admin/google_wallets_helper.rb
1138
1130
  - app/helpers/spree/base_helper_decorator.rb
@@ -1406,8 +1398,6 @@ files:
1406
1398
  - app/models/spree_cm_commissioner/base.rb
1407
1399
  - app/models/spree_cm_commissioner/blazer_queryable.rb
1408
1400
  - 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
1411
1401
  - app/models/spree_cm_commissioner/check_in.rb
1412
1402
  - app/models/spree_cm_commissioner/check_in_ability.rb
1413
1403
  - app/models/spree_cm_commissioner/check_in_record.rb
@@ -1493,14 +1483,6 @@ files:
1493
1483
  - app/models/spree_cm_commissioner/pin_code_update_user_login.rb
1494
1484
  - app/models/spree_cm_commissioner/place.rb
1495
1485
  - 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
1504
1486
  - app/models/spree_cm_commissioner/product_completion_step.rb
1505
1487
  - app/models/spree_cm_commissioner/product_completion_step_banner.rb
1506
1488
  - app/models/spree_cm_commissioner/product_completion_steps/chatrace_telegram.rb
@@ -1767,11 +1749,8 @@ files:
1767
1749
  - app/queries/spree_cm_commissioner/users_by_event_fetcher_query.rb
1768
1750
  - app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb
1769
1751
  - app/request_schemas/spree_cm_commissioner/application_request_schema.rb
1770
- - app/request_schemas/spree_cm_commissioner/intercity_taxi_draft_order_schema.rb
1771
- - app/request_schemas/spree_cm_commissioner/intercity_taxi_draft_order_update_schema.rb
1772
1752
  - app/request_schemas/spree_cm_commissioner/inventory_item_schema.rb
1773
1753
  - app/request_schemas/spree_cm_commissioner/profile_image_request_schema.rb
1774
- - app/request_schemas/spree_cm_commissioner/route_places_request_schema.rb
1775
1754
  - app/request_schemas/spree_cm_commissioner/seat_layout_schema.rb
1776
1755
  - app/request_schemas/spree_cm_commissioner/trip_search_request_schema.rb
1777
1756
  - app/request_schemas/spree_cm_commissioner/user_account_linkage_request_schema.rb
@@ -1840,7 +1819,6 @@ files:
1840
1819
  - app/serializers/spree/v2/tenant/homepage_section_serializer.rb
1841
1820
  - app/serializers/spree/v2/tenant/id_card_serializer.rb
1842
1821
  - app/serializers/spree/v2/tenant/image_serializer.rb
1843
- - app/serializers/spree/v2/tenant/intercity_taxi_cart_serializer.rb
1844
1822
  - app/serializers/spree/v2/tenant/line_item_serializer.rb
1845
1823
  - app/serializers/spree/v2/tenant/notification_serializer.rb
1846
1824
  - app/serializers/spree/v2/tenant/option_type_serializer.rb
@@ -1858,9 +1836,6 @@ files:
1858
1836
  - app/serializers/spree/v2/tenant/taxon_serializer.rb
1859
1837
  - app/serializers/spree/v2/tenant/taxonomy_serializer.rb
1860
1838
  - 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
1864
1839
  - app/serializers/spree/v2/tenant/user_contact_serializer.rb
1865
1840
  - app/serializers/spree/v2/tenant/user_device_token_serializer.rb
1866
1841
  - app/serializers/spree/v2/tenant/user_identity_provider_serializer.rb
@@ -1925,7 +1900,6 @@ files:
1925
1900
  - app/serializers/spree_cm_commissioner/v2/storefront/qr_url_serializer.rb
1926
1901
  - app/serializers/spree_cm_commissioner/v2/storefront/reserved_block_serializer.rb
1927
1902
  - app/serializers/spree_cm_commissioner/v2/storefront/reset_password_serializer.rb
1928
- - app/serializers/spree_cm_commissioner/v2/storefront/route_serializer.rb
1929
1903
  - app/serializers/spree_cm_commissioner/v2/storefront/saved_guest_serializer.rb
1930
1904
  - app/serializers/spree_cm_commissioner/v2/storefront/seat_layout_serializer.rb
1931
1905
  - app/serializers/spree_cm_commissioner/v2/storefront/seat_section_serializer.rb
@@ -1991,11 +1965,6 @@ files:
1991
1965
  - app/services/spree_cm_commissioner/organizer/export_invite_guest_csv_service.rb
1992
1966
  - app/services/spree_cm_commissioner/payment_method_type_mapper.rb
1993
1967
  - 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
1999
1968
  - app/services/spree_cm_commissioner/role_permissions_constructor.rb
2000
1969
  - app/services/spree_cm_commissioner/role_permissions_loader.rb
2001
1970
  - app/services/spree_cm_commissioner/routes/base_update_order_metrics.rb
@@ -2013,10 +1982,6 @@ files:
2013
1982
  - app/services/spree_cm_commissioner/user_authenticator.rb
2014
1983
  - app/services/spree_cm_commissioner/user_roles_assigner.rb
2015
1984
  - 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
2020
1985
  - app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb
2021
1986
  - app/services/spree_cm_commissioner/waiting_room_system_metadata_setter.rb
2022
1987
  - app/services/spree_cm_commissioner/webhooks/subscribers/handle_request_decorator.rb
@@ -2880,19 +2845,13 @@ files:
2880
2845
  - db/migrate/20250911174607_add_metadata_columns_to_cm_vehicles.rb
2881
2846
  - db/migrate/20250911174653_add_metadata_columns_to_cm_trips.rb
2882
2847
  - 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
2885
2848
  - db/migrate/20250930094228_add_application_id_to_cm_pin_codes.rb
2886
2849
  - 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
2890
2850
  - db/migrate/20251008064344_add_route_id_to_cm_trips.rb
2891
2851
  - db/migrate/20251009033331_add_registered_by_to_spree_users.rb
2892
2852
  - db/migrate/20251009073040_add_lock_version_to_cm_routes.rb
2893
2853
  - db/migrate/20251009073929_add_lock_version_to_cm_vendor_routes.rb
2894
2854
  - db/migrate/20251113081853_add_index_to_spree_orders_updated_at.rb
2895
- - db/migrate/20251119093000_add_tenant_id_to_cm_vendor_places.rb
2896
2855
  - docker-compose.yml
2897
2856
  - docs/api/scoped-access-token-endpoints.md
2898
2857
  - docs/option_types/attr_types.md
@@ -2917,8 +2876,6 @@ files:
2917
2876
  - lib/spree_cm_commissioner/calendar_event.rb
2918
2877
  - lib/spree_cm_commissioner/engine.rb
2919
2878
  - 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
2922
2879
  - lib/spree_cm_commissioner/jwt_token.rb
2923
2880
  - lib/spree_cm_commissioner/line_item_jwt_token.rb
2924
2881
  - lib/spree_cm_commissioner/order_jwt_token.rb
@@ -2967,10 +2924,6 @@ files:
2967
2924
  - lib/spree_cm_commissioner/test_helper/factories/permission.rb
2968
2925
  - lib/spree_cm_commissioner/test_helper/factories/pin_code_factory.rb
2969
2926
  - 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
2974
2927
  - lib/spree_cm_commissioner/test_helper/factories/product_completion_step_banner_factory.rb
2975
2928
  - lib/spree_cm_commissioner/test_helper/factories/product_completion_step_factory.rb
2976
2929
  - lib/spree_cm_commissioner/test_helper/factories/product_factory.rb
@@ -3063,9 +3016,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
3063
3016
  version: '2.7'
3064
3017
  required_rubygems_version: !ruby/object:Gem::Requirement
3065
3018
  requirements:
3066
- - - ">"
3019
+ - - ">="
3067
3020
  - !ruby/object:Gem::Version
3068
- version: 1.3.1
3021
+ version: '0'
3069
3022
  requirements:
3070
3023
  - none
3071
3024
  rubygems_version: 3.4.1
@@ -1,63 +0,0 @@
1
- # API endpoint for retrieving popular routes ordered by order metrics.
2
- #
3
- # GET /api/v2/storefront/popular_route_places
4
- #
5
- # Returns routes sorted by popularity (fulfilled_order_count, then order_count) with their
6
- # origin and destination places. Supports optional includes for vendors and nearby_places.
7
- #
8
- # Response: Collection of routes serialized with RouteSerializer
9
- #
10
- # @example
11
- # GET /api/v2/storefront/popular_route_places
12
- module Spree
13
- module Api
14
- module V2
15
- module Storefront
16
- class PopularRoutePlacesController < ::Spree::Api::V2::ResourceController
17
- private
18
-
19
- # override
20
- def collection
21
- @collection ||= collection_finder.new.execute
22
- end
23
-
24
- # override
25
- def default_resource_includes
26
- %w[origin_place destination_place]
27
- end
28
-
29
- # override
30
- def collection_finder
31
- SpreeCmCommissioner::Routes::FindPopular
32
- end
33
-
34
- # override
35
- def collection_serializer
36
- resource_serializer
37
- end
38
-
39
- # override
40
- def resource_serializer
41
- SpreeCmCommissioner::V2::Storefront::RouteSerializer
42
- end
43
-
44
- # override
45
- def serializer_params
46
- super.merge(
47
- include_vendors: include_vendors?,
48
- include_nearby_places: include_nearby_places?
49
- )
50
- end
51
-
52
- def include_vendors?
53
- resource_includes.include?(:vendors) || false
54
- end
55
-
56
- def include_nearby_places?
57
- resource_includes.include?(:nearby_places) || false
58
- end
59
- end
60
- end
61
- end
62
- end
63
- end
@@ -1,68 +0,0 @@
1
- # API endpoint for searching places that are used in routes by keyword.
2
- #
3
- # GET /api/v2/storefront/route_places
4
- #
5
- # Searches for places (origins or destinations) that are used in existing routes,
6
- # filtered by keyword search on place names.
7
- #
8
- # Query Parameters:
9
- # - query: [String] Required. Keyword to search in place names (case-insensitive)
10
- # - place_type: [String] Required. Type of route place: 'origin' or 'destination'
11
- # - include: Optional comma-separated list (e.g., 'vendors,nearby_places')
12
- #
13
- # Response: Collection of places serialized with PlaceSerializer
14
- #
15
- # Behavior:
16
- # - Returns empty collection if query is blank or place_type is invalid
17
- # - UI should only call this endpoint when user has input a search term
18
- # - For initial/empty state, use GET /api/v2/storefront/popular_route_places instead
19
- #
20
- # @example
21
- # GET /api/v2/storefront/route_places?query=Phnom&place_type=origin
22
- module Spree
23
- module Api
24
- module V2
25
- module Storefront
26
- class RoutePlacesController < ::Spree::Api::V2::ResourceController
27
- private
28
-
29
- # override
30
- def collection
31
- @collection ||= collection_finder.new(keyword: params[:query], place_type: params[:place_type]).execute
32
- end
33
-
34
- # override
35
- def collection_finder
36
- SpreeCmCommissioner::Places::FindWithRoute
37
- end
38
-
39
- # override
40
- def collection_serializer
41
- Spree::V2::Storefront::PlaceSerializer
42
- end
43
-
44
- # override
45
- def required_schema
46
- SpreeCmCommissioner::RoutePlacesRequestSchema
47
- end
48
-
49
- # override
50
- def serializer_params
51
- super.merge(
52
- include_vendors: include_vendors?,
53
- include_nearby_places: include_nearby_places?
54
- )
55
- end
56
-
57
- def include_vendors?
58
- resource_includes.include?(:vendors) || false
59
- end
60
-
61
- def include_nearby_places?
62
- resource_includes.include?(:nearby_places) || false
63
- end
64
- end
65
- end
66
- end
67
- end
68
- end