bscf-core 0.4.94 → 0.4.96

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2276367f58f0d92c9f44575488cf2218a2acb2b8705750c4074328bc739ce736
4
- data.tar.gz: 89dc65298e0229beadcdf16ffa2097407e0ad076f8921b0fe3fa2b60aaaafa5e
3
+ metadata.gz: ee65869ce73c1aee5ea1c76d0fd64933b90d5c5ff6c36267becef20a17f5b8d5
4
+ data.tar.gz: 8d1b9ae207b2f3696fbd46b0f964d512346190ba66f32eea95f1cf19b80dbb02
5
5
  SHA512:
6
- metadata.gz: 415dc11683d4dd63c0a3d84f59f2960865473acab4da6673eb9c4e217557a631e83200008ba88a91acfe5de795bc35cd807d399d5579b637aa29986d83d9ce15
7
- data.tar.gz: 73e6cc4aa21b0a829c77c6c840184a648b4893b704d4854ef5b1ce45a16c255b5bd68134c26f867f2f956fb2b1e9ee0286406e34c8d3be041bf0f3f62dccf97d
6
+ metadata.gz: e736a14dab87b08e7e4f6c48924a81640cc1f841fd88773768be5a90097ac729ac9783f91ecf3f1ff58c17d651d2eb5990d5b1020a7d431eed0902c8c869b48e
7
+ data.tar.gz: 1e4099ab4b9a570f37c7d61cc0dc0fed5ebdac4fbe168e802e84abbb3e3e13e752ccbf4eaf517fd6b267a884bf5b9eef0bd2ab91ad761420ba0b9294dabf7348
@@ -33,31 +33,6 @@ module Bscf
33
33
  ((delivery_end_time - delivery_start_time) / 1.hour).round(2)
34
34
  end
35
35
 
36
- def optimized_route
37
- return nil unless pickup_address&.coordinates.present?
38
-
39
- # Get all delivery order items with dropoff addresses
40
- items_with_dropoffs = orders.includes(:drop_off_address)
41
- .where.not(drop_off_address: nil)
42
-
43
- dropoff_addresses = items_with_dropoffs.map(&:drop_off_address).compact.uniq
44
- return nil if dropoff_addresses.empty?
45
-
46
- # Check if all dropoff addresses have coordinates
47
- return nil if dropoff_addresses.any? { |addr| addr.coordinates.blank? }
48
-
49
- # Call Gebeta Maps service
50
- gebeta_service = Bscf::Core::GebetaMapsService.new
51
- route_data = gebeta_service.optimize_route(pickup_address, dropoff_addresses)
52
-
53
- # Return nil if route_data is empty or doesn't have waypoints
54
- return nil if route_data.blank? || !route_data.key?("directions")
55
-
56
- # Cache the result if needed
57
- # Rails.cache.write("delivery_order_route_#{id}", route_data, expires_in: 1.hour)
58
- route_data
59
- end
60
-
61
36
  # Reorder delivery items based on optimized route or provided positions
62
37
  def reorder_items_by_route(positions = nil)
63
38
  if positions.is_a?(Hash)
@@ -0,0 +1,5 @@
1
+ class AddOptimizedRouteToDeliveryOrder < ActiveRecord::Migration[8.0]
2
+ def change
3
+ add_column :bscf_core_delivery_orders, :optimized_route, :jsonb
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
1
  module Bscf
2
2
  module Core
3
- VERSION = "0.4.94"
3
+ VERSION = "0.4.96"
4
4
  end
5
5
  end
@@ -11,5 +11,6 @@ FactoryBot.define do
11
11
  delivery_start_time { nil }
12
12
  delivery_end_time { nil }
13
13
  status { :pending }
14
+ optimized_route { Faker::Json.shallow_json }
14
15
  end
15
16
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bscf-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.94
4
+ version: 0.4.96
5
5
  platform: ruby
6
6
  authors:
7
7
  - Asrat
@@ -363,6 +363,7 @@ files:
363
363
  - db/migrate/20250623115615_remove_dropoff_address_from_delivery_orders.rb
364
364
  - db/migrate/20250624062746_rename_business_id_to_user_id_in_bscf_core_business_documents.rb
365
365
  - db/migrate/20250624122210_add_document_type_to_business_documents.rb
366
+ - db/migrate/20250714201747_add_optimized_route_to_delivery_order.rb
366
367
  - lib/bscf/core.rb
367
368
  - lib/bscf/core/engine.rb
368
369
  - lib/bscf/core/version.rb