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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/app/controllers/spree/api/v2/storefront/intercity_taxi/draft_orders_controller.rb +11 -52
- data/app/factory/spree_cm_commissioner/order_telegram_message_factory.rb +0 -12
- data/app/mailers/spree/order_mailer_decorator.rb +6 -8
- data/app/models/concerns/spree_cm_commissioner/line_item_transitable.rb +89 -34
- data/app/models/concerns/spree_cm_commissioner/service_recommendations.rb +2 -2
- data/app/models/spree_cm_commissioner/adjustment_decorator.rb +1 -1
- data/app/models/spree_cm_commissioner/order_decorator.rb +1 -1
- data/app/models/spree_cm_commissioner/place.rb +0 -7
- data/app/models/spree_cm_commissioner/tenant.rb +0 -4
- data/app/models/spree_cm_commissioner/variant_decorator.rb +0 -3
- data/app/models/spree_cm_commissioner/vendor_decorator.rb +0 -1
- data/app/models/spree_cm_commissioner/vendor_place.rb +0 -9
- data/app/queries/spree_cm_commissioner/trip_query.rb +17 -23
- data/app/serializers/spree/v2/storefront/place_serializer.rb +2 -3
- data/app/serializers/spree/v2/tenant/cart_serializer.rb +0 -1
- data/app/serializers/spree/v2/tenant/line_item_serializer.rb +0 -1
- data/app/serializers/spree_cm_commissioner/v2/storefront/intercity_taxi_line_item_serializer.rb +18 -17
- data/app/services/spree_cm_commissioner/intercity_taxi_order/create.rb +23 -20
- data/app/services/spree_cm_commissioner/intercity_taxi_order/update.rb +72 -36
- data/app/views/spree/order_mailer/confirm_email.html.erb +1 -1
- data/app/views/spree_cm_commissioner/order_mailer/_mailer_stylesheets.html.erb +13 -14
- data/app/views/spree_cm_commissioner/order_mailer/tenant/_greeting.html.erb +4 -6
- data/config/routes.rb +1 -11
- data/lib/spree_cm_commissioner/version.rb +1 -1
- data/lib/spree_cm_commissioner.rb +0 -2
- metadata +4 -51
- data/app/controllers/spree/api/v2/storefront/popular_route_places_controller.rb +0 -63
- data/app/controllers/spree/api/v2/storefront/route_places_controller.rb +0 -68
- data/app/controllers/spree/api/v2/tenant/intercity_taxi/draft_orders_controller.rb +0 -81
- data/app/controllers/spree/api/v2/tenant/trip_places_controller.rb +0 -42
- data/app/controllers/spree/api/v2/tenant/trip_search_controller.rb +0 -103
- data/app/controllers/spree/api/v2/tenant/trips_controller.rb +0 -32
- data/app/finders/spree_cm_commissioner/places/find_with_route.rb +0 -43
- data/app/finders/spree_cm_commissioner/routes/find_popular.rb +0 -25
- data/app/models/spree_cm_commissioner/calculators/extra_drop_off_distance.rb +0 -15
- data/app/models/spree_cm_commissioner/calculators/extra_pick_up_distance.rb +0 -15
- data/app/models/spree_cm_commissioner/pricing_action.rb +0 -27
- data/app/models/spree_cm_commissioner/pricing_model.rb +0 -18
- data/app/models/spree_cm_commissioner/pricing_model_variant.rb +0 -6
- data/app/models/spree_cm_commissioner/pricing_rule.rb +0 -15
- data/app/models/spree_cm_commissioner/pricing_rule_group.rb +0 -20
- data/app/models/spree_cm_commissioner/pricing_rules/extra_drop_off_distance.rb +0 -10
- data/app/models/spree_cm_commissioner/pricing_rules/extra_pick_up_distance.rb +0 -12
- data/app/models/spree_cm_commissioner/pricing_rules/nationality.rb +0 -35
- data/app/request_schemas/spree_cm_commissioner/intercity_taxi_draft_order_schema.rb +0 -10
- data/app/request_schemas/spree_cm_commissioner/intercity_taxi_draft_order_update_schema.rb +0 -29
- data/app/request_schemas/spree_cm_commissioner/route_places_request_schema.rb +0 -12
- data/app/serializers/spree/v2/tenant/intercity_taxi_cart_serializer.rb +0 -12
- data/app/serializers/spree/v2/tenant/trip_place_serializer.rb +0 -8
- data/app/serializers/spree/v2/tenant/trip_query_result_serializer.rb +0 -8
- data/app/serializers/spree/v2/tenant/trip_serializer.rb +0 -8
- data/app/serializers/spree_cm_commissioner/v2/storefront/route_serializer.rb +0 -12
- data/app/services/spree_cm_commissioner/pricing_models/apply.rb +0 -51
- data/app/services/spree_cm_commissioner/pricing_rules/build_params.rb +0 -53
- data/app/services/spree_cm_commissioner/pricing_rules/build_template.rb +0 -27
- data/app/services/spree_cm_commissioner/pricing_rules/create.rb +0 -10
- data/app/services/spree_cm_commissioner/pricing_rules/update.rb +0 -11
- data/app/services/spree_cm_commissioner/vendor_places/base.rb +0 -24
- data/app/services/spree_cm_commissioner/vendor_places/bulk_create.rb +0 -70
- data/app/services/spree_cm_commissioner/vendor_places/create_with_google_map_data.rb +0 -85
- data/app/services/spree_cm_commissioner/vendor_places/update.rb +0 -56
- data/db/migrate/20250915075830_create_spree_cm_commissioner_pricing_models.rb +0 -17
- data/db/migrate/20250915080733_create_spree_cm_commissioner_pricing_model_variants.rb +0 -14
- data/db/migrate/20251003082144_create_spree_cm_commissioner_pricing_rule_groups.rb +0 -16
- data/db/migrate/20251003093408_create_spree_cm_commissioner_pricing_rule.rb +0 -19
- data/db/migrate/20251003093643_create_spree_cm_commissioner_pricing_action.rb +0 -14
- data/db/migrate/20251119093000_add_tenant_id_to_cm_vendor_places.rb +0 -8
- data/lib/spree_cm_commissioner/intercity_taxi/distance.rb +0 -38
- data/lib/spree_cm_commissioner/intercity_taxi/map_place.rb +0 -31
- data/lib/spree_cm_commissioner/test_helper/factories/pricing_action_factory.rb +0 -5
- data/lib/spree_cm_commissioner/test_helper/factories/pricing_model_factory.rb +0 -8
- data/lib/spree_cm_commissioner/test_helper/factories/pricing_rule_factory.rb +0 -17
- 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
|
-
|
|
4
|
+
attr_reader :trip_id, :from_date, :to_date, :user_id, :quantity
|
|
5
5
|
|
|
6
|
-
def call(trip_id:, from_date:, to_date:,
|
|
7
|
-
|
|
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
|
-
|
|
24
|
+
def call
|
|
25
|
+
validate!
|
|
10
26
|
|
|
11
|
-
|
|
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,
|
|
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!
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
def call(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
|
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
|
-
|
|
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:
|
|
99
|
-
|
|
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:
|
|
103
|
-
height:
|
|
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
|
|
5
|
-
<% if
|
|
6
|
-
<
|
|
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
|
-
|
|
692
|
+
resources :draft_orders, only: %i[create update]
|
|
703
693
|
end
|
|
704
694
|
end
|
|
705
695
|
|
|
@@ -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
|
|
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-
|
|
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:
|
|
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
|