ruby_ptv_api 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.directory +11 -0
- data/.gitignore +14 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/Guardfile +36 -0
- data/README.md +46 -0
- data/Rakefile +11 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/console_initializer.rb +5 -0
- data/lib/ruby_ptv_api/base.rb +105 -0
- data/lib/ruby_ptv_api/constant.rb +107 -0
- data/lib/ruby_ptv_api/id_manager.rb +17 -0
- data/lib/ruby_ptv_api/model/base.rb +12 -0
- data/lib/ruby_ptv_api/model/plain_point.rb +21 -0
- data/lib/ruby_ptv_api/model/point.rb +9 -0
- data/lib/ruby_ptv_api/model/x_locate/additional_field.rb +14 -0
- data/lib/ruby_ptv_api/model/x_locate/address.rb +24 -0
- data/lib/ruby_ptv_api/model/x_locate/address_response.rb +13 -0
- data/lib/ruby_ptv_api/model/x_locate/combined_transport_location.rb +13 -0
- data/lib/ruby_ptv_api/model/x_locate/combined_transport_response.rb +13 -0
- data/lib/ruby_ptv_api/model/x_locate/location.rb +11 -0
- data/lib/ruby_ptv_api/model/x_locate/result_address.rb +27 -0
- data/lib/ruby_ptv_api/model/x_locate/result_combined_transport.rb +30 -0
- data/lib/ruby_ptv_api/model/x_locate/sort_option.rb +14 -0
- data/lib/ruby_ptv_api/model/x_locate/suggestion.rb +12 -0
- data/lib/ruby_ptv_api/model/x_locate/suggestion_response.rb +13 -0
- data/lib/ruby_ptv_api/model/x_route/bounding_rectangle.rb +13 -0
- data/lib/ruby_ptv_api/model/x_route/brunnel_manoeuvre.rb +11 -0
- data/lib/ruby_ptv_api/model/x_route/cen_emission_configuration.rb +14 -0
- data/lib/ruby_ptv_api/model/x_route/cen_emission_conversion_factors.rb +11 -0
- data/lib/ruby_ptv_api/model/x_route/cen_emission_scenarios.rb +21 -0
- data/lib/ruby_ptv_api/model/x_route/cen_emissions.rb +8 -0
- data/lib/ruby_ptv_api/model/x_route/commuter_travel_trend.rb +10 -0
- data/lib/ruby_ptv_api/model/x_route/detail_description_option.rb +12 -0
- data/lib/ruby_ptv_api/model/x_route/dynamic_info.rb +12 -0
- data/lib/ruby_ptv_api/model/x_route/emission_type.rb +11 -0
- data/lib/ruby_ptv_api/model/x_route/emissions.rb +23 -0
- data/lib/ruby_ptv_api/model/x_route/encoded_geometry.rb +13 -0
- data/lib/ruby_ptv_api/model/x_route/exception_path.rb +17 -0
- data/lib/ruby_ptv_api/model/x_route/expansion_description.rb +12 -0
- data/lib/ruby_ptv_api/model/x_route/feauture_description.rb +11 -0
- data/lib/ruby_ptv_api/model/x_route/hbefa_type.rb +11 -0
- data/lib/ruby_ptv_api/model/x_route/klm.rb +10 -0
- data/lib/ruby_ptv_api/model/x_route/line_string.rb +11 -0
- data/lib/ruby_ptv_api/model/x_route/manoeuvre_attr.rb +17 -0
- data/lib/ruby_ptv_api/model/x_route/manoeuvre_group.rb +16 -0
- data/lib/ruby_ptv_api/model/x_route/norm_speed.rb +12 -0
- data/lib/ruby_ptv_api/model/x_route/plain_geometry_base.rb +8 -0
- data/lib/ruby_ptv_api/model/x_route/plain_line_string.rb +11 -0
- data/lib/ruby_ptv_api/model/x_route/reach.rb +12 -0
- data/lib/ruby_ptv_api/model/x_route/reach_info.rb +14 -0
- data/lib/ruby_ptv_api/model/x_route/result_list_options.rb +46 -0
- data/lib/ruby_ptv_api/model/x_route/route.rb +38 -0
- data/lib/ruby_ptv_api/model/x_route/route_info.rb +15 -0
- data/lib/ruby_ptv_api/model/x_route/route_list_segment.rb +39 -0
- data/lib/ruby_ptv_api/model/x_route/route_manoeuvre.rb +44 -0
- data/lib/ruby_ptv_api/model/x_route/routing_option.rb +12 -0
- data/lib/ruby_ptv_api/model/x_route/segment_attributes.rb +27 -0
- data/lib/ruby_ptv_api/model/x_route/speed_limit.rb +10 -0
- data/lib/ruby_ptv_api/model/x_route/speed_limits.rb +10 -0
- data/lib/ruby_ptv_api/model/x_route/template +16 -0
- data/lib/ruby_ptv_api/model/x_route/unique_geo_id.rb +13 -0
- data/lib/ruby_ptv_api/model/x_route/urban_manoeuvre.rb +10 -0
- data/lib/ruby_ptv_api/model/x_route/vehicle_option.rb +11 -0
- data/lib/ruby_ptv_api/model/x_route/via_type.rb +11 -0
- data/lib/ruby_ptv_api/model/x_route/way_point.rb +30 -0
- data/lib/ruby_ptv_api/model/x_route/waypoint_desc.rb +28 -0
- data/lib/ruby_ptv_api/model/x_tour/abstract_costs.rb +10 -0
- data/lib/ruby_ptv_api/model/x_tour/abstract_tour.rb +10 -0
- data/lib/ruby_ptv_api/model/x_tour/abstract_tour_point.rb +16 -0
- data/lib/ruby_ptv_api/model/x_tour/abstract_tour_result.rb +38 -0
- data/lib/ruby_ptv_api/model/x_tour/abstract_transport_order.rb +11 -0
- data/lib/ruby_ptv_api/model/x_tour/abstract_vehicle.rb +14 -0
- data/lib/ruby_ptv_api/model/x_tour/base_vehicle.rb +30 -0
- data/lib/ruby_ptv_api/model/x_tour/capacities.rb +11 -0
- data/lib/ruby_ptv_api/model/x_tour/chain.rb +14 -0
- data/lib/ruby_ptv_api/model/x_tour/chain_result.rb +20 -0
- data/lib/ruby_ptv_api/model/x_tour/costs.rb +10 -0
- data/lib/ruby_ptv_api/model/x_tour/depot.rb +8 -0
- data/lib/ruby_ptv_api/model/x_tour/distance_matrix_by_road.rb +12 -0
- data/lib/ruby_ptv_api/model/x_tour/distance_matrix_calculation.rb +9 -0
- data/lib/ruby_ptv_api/model/x_tour/driver_settings.rb +17 -0
- data/lib/ruby_ptv_api/model/x_tour/fleet.rb +15 -0
- data/lib/ruby_ptv_api/model/x_tour/goal_importance.rb +44 -0
- data/lib/ruby_ptv_api/model/x_tour/interval.rb +15 -0
- data/lib/ruby_ptv_api/model/x_tour/loading_area.rb +13 -0
- data/lib/ruby_ptv_api/model/x_tour/loading_function.rb +16 -0
- data/lib/ruby_ptv_api/model/x_tour/logistic_point.rb +19 -0
- data/lib/ruby_ptv_api/model/x_tour/maximum_tour_period_restriction.rb +10 -0
- data/lib/ruby_ptv_api/model/x_tour/plan.rb +13 -0
- data/lib/ruby_ptv_api/model/x_tour/plan_result.rb +21 -0
- data/lib/ruby_ptv_api/model/x_tour/planning_params.rb +23 -0
- data/lib/ruby_ptv_api/model/x_tour/product_incompatibility.rb +11 -0
- data/lib/ruby_ptv_api/model/x_tour/quantities.rb +9 -0
- data/lib/ruby_ptv_api/model/x_tour/quantity_dependent_periods.rb +9 -0
- data/lib/ruby_ptv_api/model/x_tour/regulations_base.rb +9 -0
- data/lib/ruby_ptv_api/model/x_tour/restrictions.rb +13 -0
- data/lib/ruby_ptv_api/model/x_tour/seconds_per_quantity_unit.rb +9 -0
- data/lib/ruby_ptv_api/model/x_tour/sequencing_params.rb +12 -0
- data/lib/ruby_ptv_api/model/x_tour/sequencing_plan.rb +13 -0
- data/lib/ruby_ptv_api/model/x_tour/sequencing_plan_result.rb +16 -0
- data/lib/ruby_ptv_api/model/x_tour/sequencing_tour.rb +13 -0
- data/lib/ruby_ptv_api/model/x_tour/sequencing_tour_point.rb +16 -0
- data/lib/ruby_ptv_api/model/x_tour/sequencing_tour_result.rb +38 -0
- data/lib/ruby_ptv_api/model/x_tour/sequencing_transport_depot.rb +19 -0
- data/lib/ruby_ptv_api/model/x_tour/sequencing_transport_order.rb +9 -0
- data/lib/ruby_ptv_api/model/x_tour/sequencing_vehicle.rb +8 -0
- data/lib/ruby_ptv_api/model/x_tour/standard_params.rb +22 -0
- data/lib/ruby_ptv_api/model/x_tour/total_costs.rb +10 -0
- data/lib/ruby_ptv_api/model/x_tour/tour.rb +26 -0
- data/lib/ruby_ptv_api/model/x_tour/tour_event.rb +14 -0
- data/lib/ruby_ptv_api/model/x_tour/tour_point.rb +10 -0
- data/lib/ruby_ptv_api/model/x_tour/tour_point_result.rb +28 -0
- data/lib/ruby_ptv_api/model/x_tour/tour_restrictions.rb +13 -0
- data/lib/ruby_ptv_api/model/x_tour/tour_result.rb +17 -0
- data/lib/ruby_ptv_api/model/x_tour/tour_violations.rb +10 -0
- data/lib/ruby_ptv_api/model/x_tour/trailer.rb +10 -0
- data/lib/ruby_ptv_api/model/x_tour/train.rb +26 -0
- data/lib/ruby_ptv_api/model/x_tour/transport_depot.rb +20 -0
- data/lib/ruby_ptv_api/model/x_tour/transport_order.rb +19 -0
- data/lib/ruby_ptv_api/model/x_tour/transport_point.rb +17 -0
- data/lib/ruby_ptv_api/model/x_tour/unscheduled_order_analysis_result.rb +15 -0
- data/lib/ruby_ptv_api/model/x_tour/vehicle.rb +27 -0
- data/lib/ruby_ptv_api/model/x_tour/vehicle_costs.rb +9 -0
- data/lib/ruby_ptv_api/model/x_tour/vehicle_restrictions.rb +11 -0
- data/lib/ruby_ptv_api/model/x_tour/vehicle_violations.rb +12 -0
- data/lib/ruby_ptv_api/operation/x_locate/base.rb +68 -0
- data/lib/ruby_ptv_api/operation/x_locate/find_address.rb +26 -0
- data/lib/ruby_ptv_api/operation/x_locate/find_address_by_text.rb +28 -0
- data/lib/ruby_ptv_api/operation/x_locate/find_addresses.rb +27 -0
- data/lib/ruby_ptv_api/operation/x_locate/find_combined_transport_by_location.rb +31 -0
- data/lib/ruby_ptv_api/operation/x_locate/find_location.rb +26 -0
- data/lib/ruby_ptv_api/operation/x_locate/find_locations.rb +27 -0
- data/lib/ruby_ptv_api/operation/x_locate/find_suggestion.rb +36 -0
- data/lib/ruby_ptv_api/operation/x_route/base.rb +25 -0
- data/lib/ruby_ptv_api/operation/x_route/calculate_reachable_objects.rb +38 -0
- data/lib/ruby_ptv_api/operation/x_route/calculate_route.rb +35 -0
- data/lib/ruby_ptv_api/operation/x_route/calculate_route_info.rb +33 -0
- data/lib/ruby_ptv_api/operation/x_tour/base.rb +24 -0
- data/lib/ruby_ptv_api/operation/x_tour/plan_basic_tours.rb +48 -0
- data/lib/ruby_ptv_api/operation/x_tour/plan_sequence.rb +52 -0
- data/lib/ruby_ptv_api/version.rb +3 -0
- data/lib/ruby_ptv_api/x_tour.rb +94 -0
- data/lib/ruby_ptv_api.rb +202 -0
- data/ruby_ptv_api.gemspec +32 -0
- metadata +331 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XRoute
|
4
|
+
class WayPoint < RubyPtvApi::Model::Base
|
5
|
+
property 'accTime'
|
6
|
+
property 'accDist'
|
7
|
+
property 'iuCode'
|
8
|
+
property 'polyIdx'
|
9
|
+
property 'nodeIdx'
|
10
|
+
property 'segmentIdx'
|
11
|
+
property 'manoeuvreIdx'
|
12
|
+
property 'locationCoord'
|
13
|
+
property 'matchCoord'
|
14
|
+
property 'wayPointType', transform_with: ->(value) do
|
15
|
+
RubyPtvApi::Constant.validate(RubyPtvApi::Constant::WAY_POINT_TYPE, value)
|
16
|
+
end
|
17
|
+
property 'dynamicInfo'
|
18
|
+
property 'countryCode'
|
19
|
+
property 'emissions'
|
20
|
+
property 'cenEmissions'
|
21
|
+
property 'utcOffset'
|
22
|
+
|
23
|
+
coerce_key :locationCoord, Point
|
24
|
+
coerce_key :matchCoord, Point
|
25
|
+
coerce_key :emissions, Emissions
|
26
|
+
coerce_key :cenEmissions, CENEmissionScenarios
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XRoute
|
4
|
+
class WaypointDesc < RubyPtvApi::Model::Base
|
5
|
+
property 'coords'
|
6
|
+
property 'linkType', transform_with: ->(value) do
|
7
|
+
RubyPtvApi::Constant.validate(RubyPtvApi::Constant::LINK_TYPE, value)
|
8
|
+
end
|
9
|
+
property 'nodeID'
|
10
|
+
property 'segmentID'
|
11
|
+
property 'fuzzyRadius'
|
12
|
+
property 'heading'
|
13
|
+
property 'street'
|
14
|
+
property 'routingOptions'
|
15
|
+
property 'vehicleOptions'
|
16
|
+
property 'viaType'
|
17
|
+
property 'combinedTransportID'
|
18
|
+
|
19
|
+
coerce_key :coords , Array[Point]
|
20
|
+
coerce_key :nodeID , UniqueGeoID
|
21
|
+
coerce_key :segmentID , Array[UniqueGeoID]
|
22
|
+
coerce_key :routingOptions, Array[RoutingOption]
|
23
|
+
coerce_key :vehicleOptions, Array[VehicleOption]
|
24
|
+
coerce_key :viaType , ViaType
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class AbstractTourPoint < RubyPtvApi::Model::Base
|
5
|
+
property 'id'
|
6
|
+
property 'description'
|
7
|
+
property 'type', transform_with: ->(value) do
|
8
|
+
RubyPtvApi::Constant.validate(RubyPtvApi::Constant::TOUR_POINT_TYPE, value)
|
9
|
+
end
|
10
|
+
property 'result'
|
11
|
+
|
12
|
+
coerce_key :result, TourPointResult
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class AbstractTourResult < RubyPtvApi::Model::Base
|
5
|
+
property 'period'
|
6
|
+
property 'drivingPeriod'
|
7
|
+
property 'distance'
|
8
|
+
property 'distanceFromFirstToLastTransportPoint'
|
9
|
+
property 'maxDistanceBetweenTransportPoints'
|
10
|
+
property 'servicePeriod'
|
11
|
+
property 'restPeriod'
|
12
|
+
property 'breakPeriod'
|
13
|
+
property 'earliness'
|
14
|
+
property 'waitingPeriod'
|
15
|
+
property 'transportPointCount'
|
16
|
+
property 'startTime'
|
17
|
+
property 'startTimeLatest'
|
18
|
+
property 'coDriverRequired'
|
19
|
+
property 'totalCosts'
|
20
|
+
property 'pickupQuantities'
|
21
|
+
property 'deliveryQuantities'
|
22
|
+
property 'maxQuantities'
|
23
|
+
property 'depotUploadingPeriod'
|
24
|
+
property 'depotUnloadingPeriod'
|
25
|
+
property 'depotAvailabilityForDeliveries'
|
26
|
+
property 'depotAvailabilityForPickups'
|
27
|
+
property 'tourChanged'
|
28
|
+
property 'violations'
|
29
|
+
property 'remainingPeriods'
|
30
|
+
|
31
|
+
coerce_key :totalCosts, TotalCosts
|
32
|
+
coerce_key :pickupQuantities, Quantities
|
33
|
+
coerce_key :deliveryQuantities, Quantities
|
34
|
+
coerce_key :maxQuantities, Quantities
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class AbstractVehicle < RubyPtvApi::Model::Base
|
5
|
+
property 'depotIdStart', required: true
|
6
|
+
property 'depotIdEnd' , required: true
|
7
|
+
property 'operatingIntervals'
|
8
|
+
|
9
|
+
coerce_key :operatingIntervals, Array[Interval]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class BaseVehicle < AbstractVehicle
|
5
|
+
property 'drivingPeriodFactor'
|
6
|
+
property 'servicePeriodFactor'
|
7
|
+
property 'transportPointUploadingFunctionId'
|
8
|
+
property 'transportPointUnloadingFunctionId'
|
9
|
+
property 'depotUploadingFunctionId'
|
10
|
+
property 'depotUnloadingFunctionId'
|
11
|
+
property 'departureTimeFixed'
|
12
|
+
property 'isPreloaded'
|
13
|
+
property 'capacities'
|
14
|
+
property 'costs'
|
15
|
+
property 'dimaId'#, required: true #depot id
|
16
|
+
property 'ignoreTransportPointServicePeriod'
|
17
|
+
property 'coDriverStatus', transform_with: ->(value) do
|
18
|
+
RubyPtvApi::Constant.validate(RubyPtvApi::Constant::CO_DRIVER_STATUS, value)
|
19
|
+
end
|
20
|
+
property 'toursMustFitIntoSingleOperatingInterval'
|
21
|
+
property 'driverSettings'
|
22
|
+
|
23
|
+
coerce_key :capacities, Capacities
|
24
|
+
coerce_key :costs, VehicleCosts
|
25
|
+
coerce_key :driverSettings, DriverSettings
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class ChainResult < RubyPtvApi::Model::Base
|
5
|
+
property 'vehicleDescription'
|
6
|
+
property 'chainCosts'
|
7
|
+
property 'tourEvents'
|
8
|
+
property 'remainingPeriods'
|
9
|
+
property 'drivingPeriod'
|
10
|
+
property 'endTime'
|
11
|
+
property 'periodFromStartLocation'
|
12
|
+
property 'distanceFromStartLocation'
|
13
|
+
property 'periodToEndLocation'
|
14
|
+
property 'distanceToEndLocation'
|
15
|
+
|
16
|
+
coerce_key :tourEvents, Array[TourEvent]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class DriverSettings < RubyPtvApi::Model::Base
|
5
|
+
property 'regulationsId'
|
6
|
+
property 'breakRuleActive'
|
7
|
+
property 'dailyRestRuleActive'
|
8
|
+
property 'weeklyRestRuleActive'
|
9
|
+
property 'workingRuleActive'
|
10
|
+
property 'remainingPeriods'
|
11
|
+
property 'maximumTourPeriodRestriction'
|
12
|
+
|
13
|
+
coerce_key :maximumTourPeriodRestriction, MaximumTourPeriodRestriction
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class Fleet < RubyPtvApi::Model::Base
|
5
|
+
property 'vehicles'
|
6
|
+
property 'trailers'
|
7
|
+
property 'trains'
|
8
|
+
|
9
|
+
coerce_key :vehicles, Array[Vehicle]
|
10
|
+
coerce_key :trailers, Array[Trailer]
|
11
|
+
coerce_key :trains , Array[Train]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class GoalImportance < RubyPtvApi::Model::Base
|
5
|
+
RANKING = {
|
6
|
+
standard: 0,
|
7
|
+
do_not_care: 1,
|
8
|
+
important: 2,
|
9
|
+
very_important: 3
|
10
|
+
}
|
11
|
+
|
12
|
+
property 'vehicleCountRank', transform_with: ->(value) do
|
13
|
+
RubyPtvApi::Model::XTour::GoalImportance.validate(value)
|
14
|
+
end
|
15
|
+
property 'tourCountRank', transform_with: ->(value) do
|
16
|
+
RubyPtvApi::Model::XTour::GoalImportance.validate(value)
|
17
|
+
end
|
18
|
+
property 'chainPeriodRank', transform_with: ->(value) do
|
19
|
+
RubyPtvApi::Model::XTour::GoalImportance.validate(value)
|
20
|
+
end
|
21
|
+
property 'tourPeriodRank', transform_with: ->(value) do
|
22
|
+
RubyPtvApi::Model::XTour::GoalImportance.validate(value)
|
23
|
+
end
|
24
|
+
property 'tourDrivingPeriodRank', transform_with: ->(value) do
|
25
|
+
RubyPtvApi::Model::XTour::GoalImportance.validate(value)
|
26
|
+
end
|
27
|
+
property 'tourDistanceRank', transform_with: ->(value) do
|
28
|
+
RubyPtvApi::Model::XTour::GoalImportance.validate(value)
|
29
|
+
end
|
30
|
+
property 'unplannedOrdersRank', transform_with: ->(value) do
|
31
|
+
RubyPtvApi::Model::XTour::GoalImportance.validate(value)
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.validate(value)
|
35
|
+
value = RANKING[value] if value.is_a? Symbol
|
36
|
+
unless RANKING.values.includes?(value)
|
37
|
+
raise WrongParameterFormat.new("#{value} is not a valid must be in #{RANKING}. Both Symbol and Fixnum are allowed")
|
38
|
+
end
|
39
|
+
value
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
# A time window specified by start time and end time. The attributes must be specified in [sec] from a consistent reference point in time on (for example 0:00 next day or 0:00 1 January 1970).
|
5
|
+
# Attribute Name Type Description
|
6
|
+
# from int Start of the interval ([sec] from a reference point in time on, 0 <= from).
|
7
|
+
# till int End of the interval ([sec] from a reference point in time on, 0 < till and from <= till).
|
8
|
+
class Interval < RubyPtvApi::Model::Base
|
9
|
+
property 'from'
|
10
|
+
property 'till'
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class LoadingFunction < RubyPtvApi::Model::Base
|
5
|
+
property 'id'
|
6
|
+
property 'quantityDependentPeriods'
|
7
|
+
property 'fixedPeriod'
|
8
|
+
property 'fixedSitePeriod'
|
9
|
+
property 'exponent'
|
10
|
+
property 'maxPeriod'
|
11
|
+
|
12
|
+
coerce_key :quantityDependentPeriods, QuantityDependentPeriods
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class LogisticPoint < RubyPtvApi::Model::Base
|
5
|
+
property 'id', required: true
|
6
|
+
property 'description'
|
7
|
+
property 'location', required: true
|
8
|
+
property 'openingIntervals'
|
9
|
+
property 'siteId'
|
10
|
+
property 'extraSitePeriod'
|
11
|
+
property 'uploadingFunctionId'
|
12
|
+
property 'unloadingFunctionId'
|
13
|
+
|
14
|
+
coerce_key :location, RubyPtvApi::Model::Point
|
15
|
+
coerce_key :openingIntervals, Array[Interval]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class PlanResult < RubyPtvApi::Model::Base
|
5
|
+
property 'totalTourCount'
|
6
|
+
property 'totalTourPeriod'
|
7
|
+
property 'totalTourDrivingPeriod'
|
8
|
+
property 'totalTourDistance'
|
9
|
+
property 'totalTourCosts'
|
10
|
+
property 'totalChainCosts'
|
11
|
+
property 'scheduledOrderIds'
|
12
|
+
property 'unscheduledOrderIds'
|
13
|
+
property 'scheduledVehicleIds'
|
14
|
+
property 'unscheduledVehicleIds'
|
15
|
+
property 'unscheduledOrderAnalysisResults'
|
16
|
+
|
17
|
+
coerce_key :unscheduledOrderAnalysisResults, Array[UnscheduledOrderAnalysisResult]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class PlanningParams < RubyPtvApi::Model::Base
|
5
|
+
property 'restrictions'
|
6
|
+
property 'loadingFunctions'
|
7
|
+
property 'distanceMatrixCalculation'
|
8
|
+
property 'directVelocity'
|
9
|
+
property 'directDistanceFactor'
|
10
|
+
property 'coDriverTransportPointLoadingFactor'
|
11
|
+
property 'coDriverTransportPointsInSeparateTours'
|
12
|
+
property 'regulations'
|
13
|
+
property 'productIncompatibilities'
|
14
|
+
|
15
|
+
coerce_key :restrictions, Restrictions
|
16
|
+
coerce_key :loadingFunctions, Array[LoadingFunction]
|
17
|
+
coerce_key :distanceMatrixCalculation, Array[DistanceMatrixCalculation]
|
18
|
+
coerce_key :regulations, Array[DistanceMatrixCalculation]
|
19
|
+
coerce_key :productIncompatibilities, Array[ProductIncompatibility]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class Restrictions < RubyPtvApi::Model::Base
|
5
|
+
property 'maxTourCount'
|
6
|
+
property 'maxTransportPointCountPerTour'
|
7
|
+
property 'tourRestrictions'
|
8
|
+
|
9
|
+
coerce_key :restrictions, TourRestrictions
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class SequencingParams < PlanningParams
|
5
|
+
property 'fixedStartTransportPoints'
|
6
|
+
property 'fixedEndTransportPoints'
|
7
|
+
property 'availableMachineTime'
|
8
|
+
property 'maximumNumberOfUnscheduledOrdersToBeAnalyzed'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class SequencingPlanResult < RubyPtvApi::Model::Base
|
5
|
+
property 'tourEvents'
|
6
|
+
property 'remainingPeriods'
|
7
|
+
property 'scheduledOrderIds'
|
8
|
+
property 'unscheduledOrderIds'
|
9
|
+
property 'unscheduledOrderAnalysisResults'
|
10
|
+
|
11
|
+
coerce_key :tourEvents, Array[TourEvent]
|
12
|
+
coerce_key :result, Array[UnscheduledOrderAnalysisResult]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class SequencingTour < AbstractTour
|
5
|
+
property 'result'
|
6
|
+
property 'tourPoints'
|
7
|
+
|
8
|
+
coerce_key :result, SequencingTourResult
|
9
|
+
coerce_key :tourPoints, Array[SequencingTourPoint]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module RubyPtvApi
|
2
|
+
module Model
|
3
|
+
module XTour
|
4
|
+
class SequencingTourPoint < RubyPtvApi::Model::Base
|
5
|
+
property 'id'
|
6
|
+
property 'description'
|
7
|
+
property 'type', transform_with: ->(value) do
|
8
|
+
RubyPtvApi::Constant.validate(RubyPtvApi::Constant::TOUR_POINT_TYPE, value)
|
9
|
+
end
|
10
|
+
property 'result'
|
11
|
+
|
12
|
+
coerce_key :result, TourPointResult
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|