spree_cm_commissioner 2.3.1 → 2.3.2.pre.pre4
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/admin/product_completion_steps_controller.rb +17 -1
- data/app/controllers/spree/admin/tenants_controller.rb +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 +68 -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 +43 -0
- data/app/finders/spree_cm_commissioner/routes/find_popular.rb +25 -0
- data/app/interactors/spree_cm_commissioner/create_ticket.rb +2 -0
- data/app/interactors/spree_cm_commissioner/host_matcher.rb +1 -1
- data/app/interactors/spree_cm_commissioner/vendor_creation_telegram_alert_sender.rb +1 -1
- data/app/mailers/spree/order_mailer_decorator.rb +12 -11
- 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/concerns/spree_cm_commissioner/store_preference.rb +1 -0
- 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/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/product_completion_step.rb +4 -1
- data/app/models/spree_cm_commissioner/product_completion_step_banner.rb +12 -0
- data/app/models/spree_cm_commissioner/product_completion_steps/social_entry_url.rb +86 -19
- data/app/models/spree_cm_commissioner/tenant.rb +14 -1
- 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 +10 -1
- data/app/overrides/spree/admin/stores/_form/store_preferences.html.erb.deface +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 +12 -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/serializers/spree_cm_commissioner/v2/storefront/trip_vehicle_serializer.rb +1 -1
- 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/shared/_asset_field.html.erb +13 -0
- data/app/views/spree/admin/product_completion_steps/_form.html.erb +28 -2
- data/app/views/spree/admin/product_completion_steps/_supported_fields.html.erb +33 -0
- data/app/views/spree/admin/tenants/_form.html.erb +1 -1
- 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/initializers/spree_permitted_attributes.rb +1 -0
- data/config/locales/en.yml +4 -0
- data/config/locales/km.yml +65 -61
- data/config/routes.rb +15 -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/test_helper/factories/product_completion_step_banner_factory.rb +7 -0
- data/lib/spree_cm_commissioner/version.rb +1 -1
- data/lib/spree_cm_commissioner.rb +2 -0
- metadata +54 -4
data/config/routes.rb
CHANGED
|
@@ -163,6 +163,10 @@ Spree::Core::Engine.add_routes do
|
|
|
163
163
|
collection do
|
|
164
164
|
post :update_positions
|
|
165
165
|
end
|
|
166
|
+
|
|
167
|
+
member do
|
|
168
|
+
delete :remove_banner
|
|
169
|
+
end
|
|
166
170
|
end
|
|
167
171
|
|
|
168
172
|
resources :product_places do
|
|
@@ -546,6 +550,14 @@ Spree::Core::Engine.add_routes do
|
|
|
546
550
|
resources :guest_card_classes
|
|
547
551
|
resources :tickets, only: :index
|
|
548
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
|
+
|
|
549
561
|
resource :reset_passwords, only: [:update]
|
|
550
562
|
resource :change_passwords, only: [:update]
|
|
551
563
|
resource :user_contacts, only: [:update]
|
|
@@ -571,6 +583,8 @@ Spree::Core::Engine.add_routes do
|
|
|
571
583
|
resources :trip_places
|
|
572
584
|
resources :trip_search, only: [:index]
|
|
573
585
|
resources :trips, only: %i[show]
|
|
586
|
+
resources :route_places, only: [:index]
|
|
587
|
+
resources :popular_route_places, only: [:index]
|
|
574
588
|
|
|
575
589
|
namespace :queue_cart do
|
|
576
590
|
resources :line_items, only: [:create]
|
|
@@ -685,7 +699,7 @@ Spree::Core::Engine.add_routes do
|
|
|
685
699
|
resources :draft_orders, only: %i[create]
|
|
686
700
|
end
|
|
687
701
|
namespace :intercity_taxi do
|
|
688
|
-
|
|
702
|
+
resource :draft_orders, only: %i[create update]
|
|
689
703
|
end
|
|
690
704
|
end
|
|
691
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
|
data/lib/spree_cm_commissioner/test_helper/factories/product_completion_step_banner_factory.rb
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
FactoryBot.define do
|
|
2
|
+
factory :cm_product_completion_step_banner, class: SpreeCmCommissioner::ProductCompletionStepBanner do
|
|
3
|
+
viewable_type { 'SpreeCmCommissioner::ProductCompletionStep' }
|
|
4
|
+
viewable_id { nil }
|
|
5
|
+
attachment { Rack::Test::UploadedFile.new(Spree::Core::Engine.root.join('spec', 'fixtures', 'files', 'icon_256x256.png'), 'image/*') }
|
|
6
|
+
end
|
|
7
|
+
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.3.
|
|
4
|
+
version: 2.3.2.pre.pre4
|
|
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,7 +1493,16 @@ 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
|
|
1505
|
+
- app/models/spree_cm_commissioner/product_completion_step_banner.rb
|
|
1487
1506
|
- app/models/spree_cm_commissioner/product_completion_steps/chatrace_telegram.rb
|
|
1488
1507
|
- app/models/spree_cm_commissioner/product_completion_steps/social_entry_url.rb
|
|
1489
1508
|
- app/models/spree_cm_commissioner/product_decorator.rb
|
|
@@ -1748,8 +1767,11 @@ files:
|
|
|
1748
1767
|
- app/queries/spree_cm_commissioner/users_by_event_fetcher_query.rb
|
|
1749
1768
|
- app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb
|
|
1750
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
|
|
1751
1772
|
- app/request_schemas/spree_cm_commissioner/inventory_item_schema.rb
|
|
1752
1773
|
- app/request_schemas/spree_cm_commissioner/profile_image_request_schema.rb
|
|
1774
|
+
- app/request_schemas/spree_cm_commissioner/route_places_request_schema.rb
|
|
1753
1775
|
- app/request_schemas/spree_cm_commissioner/seat_layout_schema.rb
|
|
1754
1776
|
- app/request_schemas/spree_cm_commissioner/trip_search_request_schema.rb
|
|
1755
1777
|
- app/request_schemas/spree_cm_commissioner/user_account_linkage_request_schema.rb
|
|
@@ -1818,6 +1840,7 @@ files:
|
|
|
1818
1840
|
- app/serializers/spree/v2/tenant/homepage_section_serializer.rb
|
|
1819
1841
|
- app/serializers/spree/v2/tenant/id_card_serializer.rb
|
|
1820
1842
|
- app/serializers/spree/v2/tenant/image_serializer.rb
|
|
1843
|
+
- app/serializers/spree/v2/tenant/intercity_taxi_cart_serializer.rb
|
|
1821
1844
|
- app/serializers/spree/v2/tenant/line_item_serializer.rb
|
|
1822
1845
|
- app/serializers/spree/v2/tenant/notification_serializer.rb
|
|
1823
1846
|
- app/serializers/spree/v2/tenant/option_type_serializer.rb
|
|
@@ -1835,6 +1858,9 @@ files:
|
|
|
1835
1858
|
- app/serializers/spree/v2/tenant/taxon_serializer.rb
|
|
1836
1859
|
- app/serializers/spree/v2/tenant/taxonomy_serializer.rb
|
|
1837
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
|
|
1838
1864
|
- app/serializers/spree/v2/tenant/user_contact_serializer.rb
|
|
1839
1865
|
- app/serializers/spree/v2/tenant/user_device_token_serializer.rb
|
|
1840
1866
|
- app/serializers/spree/v2/tenant/user_identity_provider_serializer.rb
|
|
@@ -1899,6 +1925,7 @@ files:
|
|
|
1899
1925
|
- app/serializers/spree_cm_commissioner/v2/storefront/qr_url_serializer.rb
|
|
1900
1926
|
- app/serializers/spree_cm_commissioner/v2/storefront/reserved_block_serializer.rb
|
|
1901
1927
|
- app/serializers/spree_cm_commissioner/v2/storefront/reset_password_serializer.rb
|
|
1928
|
+
- app/serializers/spree_cm_commissioner/v2/storefront/route_serializer.rb
|
|
1902
1929
|
- app/serializers/spree_cm_commissioner/v2/storefront/saved_guest_serializer.rb
|
|
1903
1930
|
- app/serializers/spree_cm_commissioner/v2/storefront/seat_layout_serializer.rb
|
|
1904
1931
|
- app/serializers/spree_cm_commissioner/v2/storefront/seat_section_serializer.rb
|
|
@@ -1964,6 +1991,11 @@ files:
|
|
|
1964
1991
|
- app/services/spree_cm_commissioner/organizer/export_invite_guest_csv_service.rb
|
|
1965
1992
|
- app/services/spree_cm_commissioner/payment_method_type_mapper.rb
|
|
1966
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
|
|
1967
1999
|
- app/services/spree_cm_commissioner/role_permissions_constructor.rb
|
|
1968
2000
|
- app/services/spree_cm_commissioner/role_permissions_loader.rb
|
|
1969
2001
|
- app/services/spree_cm_commissioner/routes/base_update_order_metrics.rb
|
|
@@ -1981,6 +2013,10 @@ files:
|
|
|
1981
2013
|
- app/services/spree_cm_commissioner/user_authenticator.rb
|
|
1982
2014
|
- app/services/spree_cm_commissioner/user_roles_assigner.rb
|
|
1983
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
|
|
1984
2020
|
- app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb
|
|
1985
2021
|
- app/services/spree_cm_commissioner/waiting_room_system_metadata_setter.rb
|
|
1986
2022
|
- app/services/spree_cm_commissioner/webhooks/subscribers/handle_request_decorator.rb
|
|
@@ -2101,6 +2137,7 @@ files:
|
|
|
2101
2137
|
- app/views/spree/admin/orders/notifications.html.erb
|
|
2102
2138
|
- app/views/spree/admin/product_commissions/index.html.erb
|
|
2103
2139
|
- app/views/spree/admin/product_completion_steps/_form.html.erb
|
|
2140
|
+
- app/views/spree/admin/product_completion_steps/_supported_fields.html.erb
|
|
2104
2141
|
- app/views/spree/admin/product_completion_steps/edit.html.erb
|
|
2105
2142
|
- app/views/spree/admin/product_completion_steps/index.html.erb
|
|
2106
2143
|
- app/views/spree/admin/product_completion_steps/new.html.erb
|
|
@@ -2843,13 +2880,19 @@ files:
|
|
|
2843
2880
|
- db/migrate/20250911174607_add_metadata_columns_to_cm_vehicles.rb
|
|
2844
2881
|
- db/migrate/20250911174653_add_metadata_columns_to_cm_trips.rb
|
|
2845
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
|
|
2846
2885
|
- db/migrate/20250930094228_add_application_id_to_cm_pin_codes.rb
|
|
2847
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
|
|
2848
2890
|
- db/migrate/20251008064344_add_route_id_to_cm_trips.rb
|
|
2849
2891
|
- db/migrate/20251009033331_add_registered_by_to_spree_users.rb
|
|
2850
2892
|
- db/migrate/20251009073040_add_lock_version_to_cm_routes.rb
|
|
2851
2893
|
- db/migrate/20251009073929_add_lock_version_to_cm_vendor_routes.rb
|
|
2852
2894
|
- db/migrate/20251113081853_add_index_to_spree_orders_updated_at.rb
|
|
2895
|
+
- db/migrate/20251119093000_add_tenant_id_to_cm_vendor_places.rb
|
|
2853
2896
|
- docker-compose.yml
|
|
2854
2897
|
- docs/api/scoped-access-token-endpoints.md
|
|
2855
2898
|
- docs/option_types/attr_types.md
|
|
@@ -2874,6 +2917,8 @@ files:
|
|
|
2874
2917
|
- lib/spree_cm_commissioner/calendar_event.rb
|
|
2875
2918
|
- lib/spree_cm_commissioner/engine.rb
|
|
2876
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
|
|
2877
2922
|
- lib/spree_cm_commissioner/jwt_token.rb
|
|
2878
2923
|
- lib/spree_cm_commissioner/line_item_jwt_token.rb
|
|
2879
2924
|
- lib/spree_cm_commissioner/order_jwt_token.rb
|
|
@@ -2922,6 +2967,11 @@ files:
|
|
|
2922
2967
|
- lib/spree_cm_commissioner/test_helper/factories/permission.rb
|
|
2923
2968
|
- lib/spree_cm_commissioner/test_helper/factories/pin_code_factory.rb
|
|
2924
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
|
|
2974
|
+
- lib/spree_cm_commissioner/test_helper/factories/product_completion_step_banner_factory.rb
|
|
2925
2975
|
- lib/spree_cm_commissioner/test_helper/factories/product_completion_step_factory.rb
|
|
2926
2976
|
- lib/spree_cm_commissioner/test_helper/factories/product_factory.rb
|
|
2927
2977
|
- lib/spree_cm_commissioner/test_helper/factories/products_taxons_factory.rb
|
|
@@ -3013,9 +3063,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
3013
3063
|
version: '2.7'
|
|
3014
3064
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
3015
3065
|
requirements:
|
|
3016
|
-
- - "
|
|
3066
|
+
- - ">"
|
|
3017
3067
|
- !ruby/object:Gem::Version
|
|
3018
|
-
version:
|
|
3068
|
+
version: 1.3.1
|
|
3019
3069
|
requirements:
|
|
3020
3070
|
- none
|
|
3021
3071
|
rubygems_version: 3.4.1
|