spree_cm_commissioner 2.3.2 → 2.4.1
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 +52 -11
- data/app/controllers/spree/api/v2/storefront/popular_route_places_controller.rb +63 -0
- data/app/controllers/spree/api/v2/storefront/route_places_controller.rb +90 -0
- data/app/controllers/spree/api/v2/tenant/intercity_taxi/draft_orders_controller.rb +81 -0
- data/app/controllers/spree/api/v2/tenant/trip_places_controller.rb +42 -0
- data/app/controllers/spree/api/v2/tenant/trip_search_controller.rb +103 -0
- data/app/controllers/spree/api/v2/tenant/trips_controller.rb +32 -0
- data/app/factory/spree_cm_commissioner/order_telegram_message_factory.rb +12 -0
- data/app/finders/spree_cm_commissioner/places/find_with_route.rb +50 -0
- data/app/finders/spree_cm_commissioner/routes/find_popular.rb +25 -0
- data/app/mailers/spree/order_mailer_decorator.rb +8 -6
- data/app/models/concerns/spree_cm_commissioner/line_item_transitable.rb +34 -89
- 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/calculators/extra_drop_off_distance.rb +15 -0
- data/app/models/spree_cm_commissioner/calculators/extra_pick_up_distance.rb +15 -0
- data/app/models/spree_cm_commissioner/order_decorator.rb +1 -1
- data/app/models/spree_cm_commissioner/place.rb +7 -0
- data/app/models/spree_cm_commissioner/pricing_action.rb +27 -0
- data/app/models/spree_cm_commissioner/pricing_model.rb +18 -0
- data/app/models/spree_cm_commissioner/pricing_model_variant.rb +6 -0
- data/app/models/spree_cm_commissioner/pricing_rule.rb +15 -0
- data/app/models/spree_cm_commissioner/pricing_rule_group.rb +20 -0
- data/app/models/spree_cm_commissioner/pricing_rules/extra_drop_off_distance.rb +10 -0
- data/app/models/spree_cm_commissioner/pricing_rules/extra_pick_up_distance.rb +12 -0
- data/app/models/spree_cm_commissioner/pricing_rules/nationality.rb +35 -0
- data/app/models/spree_cm_commissioner/tenant.rb +4 -0
- data/app/models/spree_cm_commissioner/variant_decorator.rb +3 -0
- data/app/models/spree_cm_commissioner/vendor_decorator.rb +1 -0
- data/app/models/spree_cm_commissioner/vendor_place.rb +9 -0
- data/app/queries/spree_cm_commissioner/trip_query.rb +23 -17
- data/app/request_schemas/spree_cm_commissioner/intercity_taxi_draft_order_schema.rb +10 -0
- data/app/request_schemas/spree_cm_commissioner/intercity_taxi_draft_order_update_schema.rb +29 -0
- data/app/request_schemas/spree_cm_commissioner/route_places_request_schema.rb +13 -0
- data/app/serializers/spree/v2/storefront/place_serializer.rb +3 -2
- data/app/serializers/spree/v2/tenant/cart_serializer.rb +1 -0
- data/app/serializers/spree/v2/tenant/intercity_taxi_cart_serializer.rb +12 -0
- data/app/serializers/spree/v2/tenant/line_item_serializer.rb +1 -0
- data/app/serializers/spree/v2/tenant/trip_place_serializer.rb +8 -0
- data/app/serializers/spree/v2/tenant/trip_query_result_serializer.rb +8 -0
- data/app/serializers/spree/v2/tenant/trip_serializer.rb +8 -0
- data/app/serializers/spree_cm_commissioner/v2/storefront/intercity_taxi_line_item_serializer.rb +17 -18
- data/app/serializers/spree_cm_commissioner/v2/storefront/route_serializer.rb +12 -0
- data/app/services/spree_cm_commissioner/intercity_taxi_order/create.rb +20 -23
- data/app/services/spree_cm_commissioner/intercity_taxi_order/update.rb +36 -72
- data/app/services/spree_cm_commissioner/pricing_models/apply.rb +51 -0
- data/app/services/spree_cm_commissioner/pricing_rules/build_params.rb +53 -0
- data/app/services/spree_cm_commissioner/pricing_rules/build_template.rb +27 -0
- data/app/services/spree_cm_commissioner/pricing_rules/create.rb +10 -0
- data/app/services/spree_cm_commissioner/pricing_rules/update.rb +11 -0
- data/app/services/spree_cm_commissioner/vendor_places/base.rb +24 -0
- data/app/services/spree_cm_commissioner/vendor_places/bulk_create.rb +70 -0
- data/app/services/spree_cm_commissioner/vendor_places/create_with_google_map_data.rb +85 -0
- data/app/services/spree_cm_commissioner/vendor_places/update.rb +56 -0
- data/app/views/spree/order_mailer/confirm_email.html.erb +1 -1
- data/app/views/spree_cm_commissioner/order_mailer/_mailer_stylesheets.html.erb +14 -13
- data/app/views/spree_cm_commissioner/order_mailer/tenant/_greeting.html.erb +6 -4
- data/config/routes.rb +11 -1
- data/db/migrate/20250915075830_create_spree_cm_commissioner_pricing_models.rb +17 -0
- data/db/migrate/20250915080733_create_spree_cm_commissioner_pricing_model_variants.rb +14 -0
- data/db/migrate/20251003082144_create_spree_cm_commissioner_pricing_rule_groups.rb +16 -0
- data/db/migrate/20251003093408_create_spree_cm_commissioner_pricing_rule.rb +19 -0
- data/db/migrate/20251003093643_create_spree_cm_commissioner_pricing_action.rb +14 -0
- data/db/migrate/20251119093000_add_tenant_id_to_cm_vendor_places.rb +8 -0
- data/lib/spree_cm_commissioner/intercity_taxi/distance.rb +38 -0
- data/lib/spree_cm_commissioner/intercity_taxi/map_place.rb +31 -0
- data/lib/spree_cm_commissioner/test_helper/factories/pricing_action_factory.rb +5 -0
- data/lib/spree_cm_commissioner/test_helper/factories/pricing_model_factory.rb +8 -0
- data/lib/spree_cm_commissioner/test_helper/factories/pricing_rule_factory.rb +17 -0
- data/lib/spree_cm_commissioner/test_helper/factories/pricing_rule_group_factory.rb +8 -0
- data/lib/spree_cm_commissioner/version.rb +1 -1
- data/lib/spree_cm_commissioner.rb +2 -0
- metadata +49 -2
|
@@ -74,7 +74,9 @@
|
|
|
74
74
|
background-position: center;
|
|
75
75
|
background-repeat: no-repeat;
|
|
76
76
|
border-radius: 1.5625rem 1.5625rem 0 0;
|
|
77
|
-
|
|
77
|
+
<% if @brand_color.present? %>
|
|
78
|
+
background: <%= @brand_color %>;
|
|
79
|
+
<% end %>
|
|
78
80
|
}
|
|
79
81
|
#confirm-email #greeting-card-1 p,
|
|
80
82
|
#confirm-email #greeting-card-1 .header,
|
|
@@ -93,21 +95,20 @@
|
|
|
93
95
|
margin-bottom: 0.625rem;
|
|
94
96
|
}
|
|
95
97
|
#confirm-email .icon-hang-meas {
|
|
96
|
-
width:
|
|
97
|
-
|
|
98
|
-
border-radius: 50%;
|
|
99
|
-
background-color: #fff;
|
|
100
|
-
display: flex;
|
|
101
|
-
align-items: center;
|
|
102
|
-
justify-content: center;
|
|
103
|
-
overflow: hidden;
|
|
98
|
+
width: 50%;
|
|
99
|
+
text-align: right;
|
|
104
100
|
}
|
|
105
|
-
|
|
106
101
|
#confirm-email .icon-hang-meas img {
|
|
107
|
-
width:
|
|
108
|
-
height:
|
|
109
|
-
object-fit: cover;
|
|
102
|
+
width: 6.25rem;
|
|
103
|
+
height: 6.25rem;
|
|
110
104
|
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%;
|
|
111
112
|
}
|
|
112
113
|
|
|
113
114
|
#confirm-email .header {
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
<div id="greeting-card-1">
|
|
2
2
|
<div>
|
|
3
3
|
<div class="header">
|
|
4
|
-
<h1
|
|
5
|
-
<% if
|
|
6
|
-
<
|
|
4
|
+
<h1><%= name %></h1>
|
|
5
|
+
<% if logo.present? %>
|
|
6
|
+
<div class="icon-hang-meas">
|
|
7
|
+
<img src="<%= logo %>" alt="<%= name %> Logo">
|
|
8
|
+
</div>
|
|
7
9
|
<% end %>
|
|
8
10
|
</div>
|
|
9
11
|
<div class="booking-confirm">
|
|
@@ -13,7 +15,7 @@
|
|
|
13
15
|
<%= I18n.t('mail.order_mailer.hello', full_name: user_full_name(order)) %>
|
|
14
16
|
</div>
|
|
15
17
|
<div class="description">
|
|
16
|
-
<%= I18n.t('mail.order_mailer.booking_event', order_number:
|
|
18
|
+
<%= I18n.t('mail.order_mailer.booking_event', order_number: order.number || 'NA') %>
|
|
17
19
|
</div>
|
|
18
20
|
</div>
|
|
19
21
|
</div>
|
data/config/routes.rb
CHANGED
|
@@ -550,6 +550,14 @@ 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
|
+
|
|
553
561
|
resource :reset_passwords, only: [:update]
|
|
554
562
|
resource :change_passwords, only: [:update]
|
|
555
563
|
resource :user_contacts, only: [:update]
|
|
@@ -575,6 +583,8 @@ Spree::Core::Engine.add_routes do
|
|
|
575
583
|
resources :trip_places
|
|
576
584
|
resources :trip_search, only: [:index]
|
|
577
585
|
resources :trips, only: %i[show]
|
|
586
|
+
resources :route_places, only: [:index]
|
|
587
|
+
resources :popular_route_places, only: [:index]
|
|
578
588
|
|
|
579
589
|
namespace :queue_cart do
|
|
580
590
|
resources :line_items, only: [:create]
|
|
@@ -689,7 +699,7 @@ Spree::Core::Engine.add_routes do
|
|
|
689
699
|
resources :draft_orders, only: %i[create]
|
|
690
700
|
end
|
|
691
701
|
namespace :intercity_taxi do
|
|
692
|
-
|
|
702
|
+
resource :draft_orders, only: %i[create update]
|
|
693
703
|
end
|
|
694
704
|
end
|
|
695
705
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
class CreateSpreeCmCommissionerPricingModels < ActiveRecord::Migration[7.0]
|
|
2
|
+
def change
|
|
3
|
+
create_table :cm_pricing_models, if_not_exists: true do |t|
|
|
4
|
+
t.string :name, null: false
|
|
5
|
+
t.text :description
|
|
6
|
+
t.integer :status, default: 0, null: false
|
|
7
|
+
t.integer :position, null: false, default: 0
|
|
8
|
+
|
|
9
|
+
t.references :vendor, null: false, foreign_key: { to_table: :spree_vendors }
|
|
10
|
+
|
|
11
|
+
t.timestamps
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
add_index :cm_pricing_models, :position unless index_exists?(:cm_pricing_models, :position)
|
|
15
|
+
add_index :cm_pricing_models, :vendor_id unless index_exists?(:cm_pricing_models, :vendor_id)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
class CreateSpreeCmCommissionerPricingModelVariants < ActiveRecord::Migration[7.0]
|
|
2
|
+
def change
|
|
3
|
+
create_table :cm_pricing_model_variants, if_not_exists: true do |t|
|
|
4
|
+
t.references :pricing_model, null: false, foreign_key: { to_table: :cm_pricing_models }
|
|
5
|
+
t.references :variant, null: false, foreign_key: { to_table: :spree_variants }
|
|
6
|
+
t.references :product, null: true, foreign_key: { to_table: :spree_products }
|
|
7
|
+
|
|
8
|
+
t.timestamps
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
add_index :cm_pricing_model_variants, [:pricing_model_id, :variant_id], name: 'idx_pm_variants_on_model_variant'
|
|
12
|
+
add_index :cm_pricing_model_variants, [:pricing_model_id, :product_id], name: 'idx_pm_variants_on_model_product'
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
class CreateSpreeCmCommissionerPricingRuleGroups < ActiveRecord::Migration[7.0]
|
|
2
|
+
def change
|
|
3
|
+
create_table :cm_pricing_rule_groups, if_not_exists: true do |t|
|
|
4
|
+
t.references :pricing_model, null: false, foreign_key: { to_table: :cm_pricing_models }
|
|
5
|
+
t.string :name
|
|
6
|
+
t.integer :position, default: 0
|
|
7
|
+
t.integer :status, default: 0, null: false
|
|
8
|
+
t.jsonb :public_metadata
|
|
9
|
+
t.jsonb :private_metadata
|
|
10
|
+
t.timestamps
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
add_index :cm_pricing_rule_groups, :pricing_model_id, name: 'idx_rule_groups_on_model'
|
|
14
|
+
add_index :cm_pricing_rule_groups, [:pricing_model_id, :position], name: 'idx_rule_groups_on_model_position'
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -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
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
class AddTenantIdToCmVendorPlaces < ActiveRecord::Migration[7.0]
|
|
2
|
+
def change
|
|
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
|
|
6
|
+
add_index :cm_vendor_places, :tenant_id, if_not_exists: true
|
|
7
|
+
end
|
|
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,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
|
|
@@ -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.
|
|
4
|
+
version: 2.4.1
|
|
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-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
|
|
@@ -1013,6 +1015,7 @@ files:
|
|
|
1013
1015
|
- app/controllers/spree/api/v2/tenant/guests_controller.rb
|
|
1014
1016
|
- app/controllers/spree/api/v2/tenant/homepage_sections_controller.rb
|
|
1015
1017
|
- app/controllers/spree/api/v2/tenant/id_cards_controller.rb
|
|
1018
|
+
- app/controllers/spree/api/v2/tenant/intercity_taxi/draft_orders_controller.rb
|
|
1016
1019
|
- app/controllers/spree/api/v2/tenant/line_items_controller.rb
|
|
1017
1020
|
- app/controllers/spree/api/v2/tenant/notifications_controller.rb
|
|
1018
1021
|
- app/controllers/spree/api/v2/tenant/order_histories_controller.rb
|
|
@@ -1025,6 +1028,9 @@ files:
|
|
|
1025
1028
|
- app/controllers/spree/api/v2/tenant/s3_signed_urls_controller.rb
|
|
1026
1029
|
- app/controllers/spree/api/v2/tenant/taxons_controller.rb
|
|
1027
1030
|
- 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
|
|
1028
1034
|
- app/controllers/spree/api/v2/tenant/user_account_linkages_controller.rb
|
|
1029
1035
|
- app/controllers/spree/api/v2/tenant/user_contacts_controller.rb
|
|
1030
1036
|
- app/controllers/spree/api/v2/tenant/user_device_tokens_controller.rb
|
|
@@ -1124,7 +1130,9 @@ files:
|
|
|
1124
1130
|
- app/finders/spree_cm_commissioner/orders/find.rb
|
|
1125
1131
|
- app/finders/spree_cm_commissioner/orders/find_by_state.rb
|
|
1126
1132
|
- app/finders/spree_cm_commissioner/payment_methods/group_by_bank.rb
|
|
1133
|
+
- app/finders/spree_cm_commissioner/places/find_with_route.rb
|
|
1127
1134
|
- app/finders/spree_cm_commissioner/products/find_decorator.rb
|
|
1135
|
+
- app/finders/spree_cm_commissioner/routes/find_popular.rb
|
|
1128
1136
|
- app/helpers/spree/admin/base_helper_decorator.rb
|
|
1129
1137
|
- app/helpers/spree/admin/google_wallets_helper.rb
|
|
1130
1138
|
- app/helpers/spree/base_helper_decorator.rb
|
|
@@ -1398,6 +1406,8 @@ files:
|
|
|
1398
1406
|
- app/models/spree_cm_commissioner/base.rb
|
|
1399
1407
|
- app/models/spree_cm_commissioner/blazer_queryable.rb
|
|
1400
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
|
|
1401
1411
|
- app/models/spree_cm_commissioner/check_in.rb
|
|
1402
1412
|
- app/models/spree_cm_commissioner/check_in_ability.rb
|
|
1403
1413
|
- app/models/spree_cm_commissioner/check_in_record.rb
|
|
@@ -1483,6 +1493,14 @@ files:
|
|
|
1483
1493
|
- app/models/spree_cm_commissioner/pin_code_update_user_login.rb
|
|
1484
1494
|
- app/models/spree_cm_commissioner/place.rb
|
|
1485
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
|
|
1486
1504
|
- app/models/spree_cm_commissioner/product_completion_step.rb
|
|
1487
1505
|
- app/models/spree_cm_commissioner/product_completion_step_banner.rb
|
|
1488
1506
|
- app/models/spree_cm_commissioner/product_completion_steps/chatrace_telegram.rb
|
|
@@ -1749,8 +1767,11 @@ files:
|
|
|
1749
1767
|
- app/queries/spree_cm_commissioner/users_by_event_fetcher_query.rb
|
|
1750
1768
|
- app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb
|
|
1751
1769
|
- 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
|
|
1752
1772
|
- app/request_schemas/spree_cm_commissioner/inventory_item_schema.rb
|
|
1753
1773
|
- app/request_schemas/spree_cm_commissioner/profile_image_request_schema.rb
|
|
1774
|
+
- app/request_schemas/spree_cm_commissioner/route_places_request_schema.rb
|
|
1754
1775
|
- app/request_schemas/spree_cm_commissioner/seat_layout_schema.rb
|
|
1755
1776
|
- app/request_schemas/spree_cm_commissioner/trip_search_request_schema.rb
|
|
1756
1777
|
- app/request_schemas/spree_cm_commissioner/user_account_linkage_request_schema.rb
|
|
@@ -1819,6 +1840,7 @@ files:
|
|
|
1819
1840
|
- app/serializers/spree/v2/tenant/homepage_section_serializer.rb
|
|
1820
1841
|
- app/serializers/spree/v2/tenant/id_card_serializer.rb
|
|
1821
1842
|
- app/serializers/spree/v2/tenant/image_serializer.rb
|
|
1843
|
+
- app/serializers/spree/v2/tenant/intercity_taxi_cart_serializer.rb
|
|
1822
1844
|
- app/serializers/spree/v2/tenant/line_item_serializer.rb
|
|
1823
1845
|
- app/serializers/spree/v2/tenant/notification_serializer.rb
|
|
1824
1846
|
- app/serializers/spree/v2/tenant/option_type_serializer.rb
|
|
@@ -1836,6 +1858,9 @@ files:
|
|
|
1836
1858
|
- app/serializers/spree/v2/tenant/taxon_serializer.rb
|
|
1837
1859
|
- app/serializers/spree/v2/tenant/taxonomy_serializer.rb
|
|
1838
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
|
|
1839
1864
|
- app/serializers/spree/v2/tenant/user_contact_serializer.rb
|
|
1840
1865
|
- app/serializers/spree/v2/tenant/user_device_token_serializer.rb
|
|
1841
1866
|
- app/serializers/spree/v2/tenant/user_identity_provider_serializer.rb
|
|
@@ -1900,6 +1925,7 @@ files:
|
|
|
1900
1925
|
- app/serializers/spree_cm_commissioner/v2/storefront/qr_url_serializer.rb
|
|
1901
1926
|
- app/serializers/spree_cm_commissioner/v2/storefront/reserved_block_serializer.rb
|
|
1902
1927
|
- app/serializers/spree_cm_commissioner/v2/storefront/reset_password_serializer.rb
|
|
1928
|
+
- app/serializers/spree_cm_commissioner/v2/storefront/route_serializer.rb
|
|
1903
1929
|
- app/serializers/spree_cm_commissioner/v2/storefront/saved_guest_serializer.rb
|
|
1904
1930
|
- app/serializers/spree_cm_commissioner/v2/storefront/seat_layout_serializer.rb
|
|
1905
1931
|
- app/serializers/spree_cm_commissioner/v2/storefront/seat_section_serializer.rb
|
|
@@ -1965,6 +1991,11 @@ files:
|
|
|
1965
1991
|
- app/services/spree_cm_commissioner/organizer/export_invite_guest_csv_service.rb
|
|
1966
1992
|
- app/services/spree_cm_commissioner/payment_method_type_mapper.rb
|
|
1967
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
|
|
1968
1999
|
- app/services/spree_cm_commissioner/role_permissions_constructor.rb
|
|
1969
2000
|
- app/services/spree_cm_commissioner/role_permissions_loader.rb
|
|
1970
2001
|
- app/services/spree_cm_commissioner/routes/base_update_order_metrics.rb
|
|
@@ -1982,6 +2013,10 @@ files:
|
|
|
1982
2013
|
- app/services/spree_cm_commissioner/user_authenticator.rb
|
|
1983
2014
|
- app/services/spree_cm_commissioner/user_roles_assigner.rb
|
|
1984
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
|
|
1985
2020
|
- app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb
|
|
1986
2021
|
- app/services/spree_cm_commissioner/waiting_room_system_metadata_setter.rb
|
|
1987
2022
|
- app/services/spree_cm_commissioner/webhooks/subscribers/handle_request_decorator.rb
|
|
@@ -2845,13 +2880,19 @@ files:
|
|
|
2845
2880
|
- db/migrate/20250911174607_add_metadata_columns_to_cm_vehicles.rb
|
|
2846
2881
|
- db/migrate/20250911174653_add_metadata_columns_to_cm_trips.rb
|
|
2847
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
|
|
2848
2885
|
- db/migrate/20250930094228_add_application_id_to_cm_pin_codes.rb
|
|
2849
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
|
|
2850
2890
|
- db/migrate/20251008064344_add_route_id_to_cm_trips.rb
|
|
2851
2891
|
- db/migrate/20251009033331_add_registered_by_to_spree_users.rb
|
|
2852
2892
|
- db/migrate/20251009073040_add_lock_version_to_cm_routes.rb
|
|
2853
2893
|
- db/migrate/20251009073929_add_lock_version_to_cm_vendor_routes.rb
|
|
2854
2894
|
- db/migrate/20251113081853_add_index_to_spree_orders_updated_at.rb
|
|
2895
|
+
- db/migrate/20251119093000_add_tenant_id_to_cm_vendor_places.rb
|
|
2855
2896
|
- docker-compose.yml
|
|
2856
2897
|
- docs/api/scoped-access-token-endpoints.md
|
|
2857
2898
|
- docs/option_types/attr_types.md
|
|
@@ -2876,6 +2917,8 @@ files:
|
|
|
2876
2917
|
- lib/spree_cm_commissioner/calendar_event.rb
|
|
2877
2918
|
- lib/spree_cm_commissioner/engine.rb
|
|
2878
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
|
|
2879
2922
|
- lib/spree_cm_commissioner/jwt_token.rb
|
|
2880
2923
|
- lib/spree_cm_commissioner/line_item_jwt_token.rb
|
|
2881
2924
|
- lib/spree_cm_commissioner/order_jwt_token.rb
|
|
@@ -2924,6 +2967,10 @@ files:
|
|
|
2924
2967
|
- lib/spree_cm_commissioner/test_helper/factories/permission.rb
|
|
2925
2968
|
- lib/spree_cm_commissioner/test_helper/factories/pin_code_factory.rb
|
|
2926
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
|
|
2927
2974
|
- lib/spree_cm_commissioner/test_helper/factories/product_completion_step_banner_factory.rb
|
|
2928
2975
|
- lib/spree_cm_commissioner/test_helper/factories/product_completion_step_factory.rb
|
|
2929
2976
|
- lib/spree_cm_commissioner/test_helper/factories/product_factory.rb
|