ruby_ptv_api 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +7 -0
  2. data/.directory +11 -0
  3. data/.gitignore +14 -0
  4. data/.rspec +2 -0
  5. data/.travis.yml +4 -0
  6. data/Gemfile +4 -0
  7. data/Guardfile +36 -0
  8. data/README.md +46 -0
  9. data/Rakefile +11 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/console_initializer.rb +5 -0
  13. data/lib/ruby_ptv_api/base.rb +105 -0
  14. data/lib/ruby_ptv_api/constant.rb +107 -0
  15. data/lib/ruby_ptv_api/id_manager.rb +17 -0
  16. data/lib/ruby_ptv_api/model/base.rb +12 -0
  17. data/lib/ruby_ptv_api/model/plain_point.rb +21 -0
  18. data/lib/ruby_ptv_api/model/point.rb +9 -0
  19. data/lib/ruby_ptv_api/model/x_locate/additional_field.rb +14 -0
  20. data/lib/ruby_ptv_api/model/x_locate/address.rb +24 -0
  21. data/lib/ruby_ptv_api/model/x_locate/address_response.rb +13 -0
  22. data/lib/ruby_ptv_api/model/x_locate/combined_transport_location.rb +13 -0
  23. data/lib/ruby_ptv_api/model/x_locate/combined_transport_response.rb +13 -0
  24. data/lib/ruby_ptv_api/model/x_locate/location.rb +11 -0
  25. data/lib/ruby_ptv_api/model/x_locate/result_address.rb +27 -0
  26. data/lib/ruby_ptv_api/model/x_locate/result_combined_transport.rb +30 -0
  27. data/lib/ruby_ptv_api/model/x_locate/sort_option.rb +14 -0
  28. data/lib/ruby_ptv_api/model/x_locate/suggestion.rb +12 -0
  29. data/lib/ruby_ptv_api/model/x_locate/suggestion_response.rb +13 -0
  30. data/lib/ruby_ptv_api/model/x_route/bounding_rectangle.rb +13 -0
  31. data/lib/ruby_ptv_api/model/x_route/brunnel_manoeuvre.rb +11 -0
  32. data/lib/ruby_ptv_api/model/x_route/cen_emission_configuration.rb +14 -0
  33. data/lib/ruby_ptv_api/model/x_route/cen_emission_conversion_factors.rb +11 -0
  34. data/lib/ruby_ptv_api/model/x_route/cen_emission_scenarios.rb +21 -0
  35. data/lib/ruby_ptv_api/model/x_route/cen_emissions.rb +8 -0
  36. data/lib/ruby_ptv_api/model/x_route/commuter_travel_trend.rb +10 -0
  37. data/lib/ruby_ptv_api/model/x_route/detail_description_option.rb +12 -0
  38. data/lib/ruby_ptv_api/model/x_route/dynamic_info.rb +12 -0
  39. data/lib/ruby_ptv_api/model/x_route/emission_type.rb +11 -0
  40. data/lib/ruby_ptv_api/model/x_route/emissions.rb +23 -0
  41. data/lib/ruby_ptv_api/model/x_route/encoded_geometry.rb +13 -0
  42. data/lib/ruby_ptv_api/model/x_route/exception_path.rb +17 -0
  43. data/lib/ruby_ptv_api/model/x_route/expansion_description.rb +12 -0
  44. data/lib/ruby_ptv_api/model/x_route/feauture_description.rb +11 -0
  45. data/lib/ruby_ptv_api/model/x_route/hbefa_type.rb +11 -0
  46. data/lib/ruby_ptv_api/model/x_route/klm.rb +10 -0
  47. data/lib/ruby_ptv_api/model/x_route/line_string.rb +11 -0
  48. data/lib/ruby_ptv_api/model/x_route/manoeuvre_attr.rb +17 -0
  49. data/lib/ruby_ptv_api/model/x_route/manoeuvre_group.rb +16 -0
  50. data/lib/ruby_ptv_api/model/x_route/norm_speed.rb +12 -0
  51. data/lib/ruby_ptv_api/model/x_route/plain_geometry_base.rb +8 -0
  52. data/lib/ruby_ptv_api/model/x_route/plain_line_string.rb +11 -0
  53. data/lib/ruby_ptv_api/model/x_route/reach.rb +12 -0
  54. data/lib/ruby_ptv_api/model/x_route/reach_info.rb +14 -0
  55. data/lib/ruby_ptv_api/model/x_route/result_list_options.rb +46 -0
  56. data/lib/ruby_ptv_api/model/x_route/route.rb +38 -0
  57. data/lib/ruby_ptv_api/model/x_route/route_info.rb +15 -0
  58. data/lib/ruby_ptv_api/model/x_route/route_list_segment.rb +39 -0
  59. data/lib/ruby_ptv_api/model/x_route/route_manoeuvre.rb +44 -0
  60. data/lib/ruby_ptv_api/model/x_route/routing_option.rb +12 -0
  61. data/lib/ruby_ptv_api/model/x_route/segment_attributes.rb +27 -0
  62. data/lib/ruby_ptv_api/model/x_route/speed_limit.rb +10 -0
  63. data/lib/ruby_ptv_api/model/x_route/speed_limits.rb +10 -0
  64. data/lib/ruby_ptv_api/model/x_route/template +16 -0
  65. data/lib/ruby_ptv_api/model/x_route/unique_geo_id.rb +13 -0
  66. data/lib/ruby_ptv_api/model/x_route/urban_manoeuvre.rb +10 -0
  67. data/lib/ruby_ptv_api/model/x_route/vehicle_option.rb +11 -0
  68. data/lib/ruby_ptv_api/model/x_route/via_type.rb +11 -0
  69. data/lib/ruby_ptv_api/model/x_route/way_point.rb +30 -0
  70. data/lib/ruby_ptv_api/model/x_route/waypoint_desc.rb +28 -0
  71. data/lib/ruby_ptv_api/model/x_tour/abstract_costs.rb +10 -0
  72. data/lib/ruby_ptv_api/model/x_tour/abstract_tour.rb +10 -0
  73. data/lib/ruby_ptv_api/model/x_tour/abstract_tour_point.rb +16 -0
  74. data/lib/ruby_ptv_api/model/x_tour/abstract_tour_result.rb +38 -0
  75. data/lib/ruby_ptv_api/model/x_tour/abstract_transport_order.rb +11 -0
  76. data/lib/ruby_ptv_api/model/x_tour/abstract_vehicle.rb +14 -0
  77. data/lib/ruby_ptv_api/model/x_tour/base_vehicle.rb +30 -0
  78. data/lib/ruby_ptv_api/model/x_tour/capacities.rb +11 -0
  79. data/lib/ruby_ptv_api/model/x_tour/chain.rb +14 -0
  80. data/lib/ruby_ptv_api/model/x_tour/chain_result.rb +20 -0
  81. data/lib/ruby_ptv_api/model/x_tour/costs.rb +10 -0
  82. data/lib/ruby_ptv_api/model/x_tour/depot.rb +8 -0
  83. data/lib/ruby_ptv_api/model/x_tour/distance_matrix_by_road.rb +12 -0
  84. data/lib/ruby_ptv_api/model/x_tour/distance_matrix_calculation.rb +9 -0
  85. data/lib/ruby_ptv_api/model/x_tour/driver_settings.rb +17 -0
  86. data/lib/ruby_ptv_api/model/x_tour/fleet.rb +15 -0
  87. data/lib/ruby_ptv_api/model/x_tour/goal_importance.rb +44 -0
  88. data/lib/ruby_ptv_api/model/x_tour/interval.rb +15 -0
  89. data/lib/ruby_ptv_api/model/x_tour/loading_area.rb +13 -0
  90. data/lib/ruby_ptv_api/model/x_tour/loading_function.rb +16 -0
  91. data/lib/ruby_ptv_api/model/x_tour/logistic_point.rb +19 -0
  92. data/lib/ruby_ptv_api/model/x_tour/maximum_tour_period_restriction.rb +10 -0
  93. data/lib/ruby_ptv_api/model/x_tour/plan.rb +13 -0
  94. data/lib/ruby_ptv_api/model/x_tour/plan_result.rb +21 -0
  95. data/lib/ruby_ptv_api/model/x_tour/planning_params.rb +23 -0
  96. data/lib/ruby_ptv_api/model/x_tour/product_incompatibility.rb +11 -0
  97. data/lib/ruby_ptv_api/model/x_tour/quantities.rb +9 -0
  98. data/lib/ruby_ptv_api/model/x_tour/quantity_dependent_periods.rb +9 -0
  99. data/lib/ruby_ptv_api/model/x_tour/regulations_base.rb +9 -0
  100. data/lib/ruby_ptv_api/model/x_tour/restrictions.rb +13 -0
  101. data/lib/ruby_ptv_api/model/x_tour/seconds_per_quantity_unit.rb +9 -0
  102. data/lib/ruby_ptv_api/model/x_tour/sequencing_params.rb +12 -0
  103. data/lib/ruby_ptv_api/model/x_tour/sequencing_plan.rb +13 -0
  104. data/lib/ruby_ptv_api/model/x_tour/sequencing_plan_result.rb +16 -0
  105. data/lib/ruby_ptv_api/model/x_tour/sequencing_tour.rb +13 -0
  106. data/lib/ruby_ptv_api/model/x_tour/sequencing_tour_point.rb +16 -0
  107. data/lib/ruby_ptv_api/model/x_tour/sequencing_tour_result.rb +38 -0
  108. data/lib/ruby_ptv_api/model/x_tour/sequencing_transport_depot.rb +19 -0
  109. data/lib/ruby_ptv_api/model/x_tour/sequencing_transport_order.rb +9 -0
  110. data/lib/ruby_ptv_api/model/x_tour/sequencing_vehicle.rb +8 -0
  111. data/lib/ruby_ptv_api/model/x_tour/standard_params.rb +22 -0
  112. data/lib/ruby_ptv_api/model/x_tour/total_costs.rb +10 -0
  113. data/lib/ruby_ptv_api/model/x_tour/tour.rb +26 -0
  114. data/lib/ruby_ptv_api/model/x_tour/tour_event.rb +14 -0
  115. data/lib/ruby_ptv_api/model/x_tour/tour_point.rb +10 -0
  116. data/lib/ruby_ptv_api/model/x_tour/tour_point_result.rb +28 -0
  117. data/lib/ruby_ptv_api/model/x_tour/tour_restrictions.rb +13 -0
  118. data/lib/ruby_ptv_api/model/x_tour/tour_result.rb +17 -0
  119. data/lib/ruby_ptv_api/model/x_tour/tour_violations.rb +10 -0
  120. data/lib/ruby_ptv_api/model/x_tour/trailer.rb +10 -0
  121. data/lib/ruby_ptv_api/model/x_tour/train.rb +26 -0
  122. data/lib/ruby_ptv_api/model/x_tour/transport_depot.rb +20 -0
  123. data/lib/ruby_ptv_api/model/x_tour/transport_order.rb +19 -0
  124. data/lib/ruby_ptv_api/model/x_tour/transport_point.rb +17 -0
  125. data/lib/ruby_ptv_api/model/x_tour/unscheduled_order_analysis_result.rb +15 -0
  126. data/lib/ruby_ptv_api/model/x_tour/vehicle.rb +27 -0
  127. data/lib/ruby_ptv_api/model/x_tour/vehicle_costs.rb +9 -0
  128. data/lib/ruby_ptv_api/model/x_tour/vehicle_restrictions.rb +11 -0
  129. data/lib/ruby_ptv_api/model/x_tour/vehicle_violations.rb +12 -0
  130. data/lib/ruby_ptv_api/operation/x_locate/base.rb +68 -0
  131. data/lib/ruby_ptv_api/operation/x_locate/find_address.rb +26 -0
  132. data/lib/ruby_ptv_api/operation/x_locate/find_address_by_text.rb +28 -0
  133. data/lib/ruby_ptv_api/operation/x_locate/find_addresses.rb +27 -0
  134. data/lib/ruby_ptv_api/operation/x_locate/find_combined_transport_by_location.rb +31 -0
  135. data/lib/ruby_ptv_api/operation/x_locate/find_location.rb +26 -0
  136. data/lib/ruby_ptv_api/operation/x_locate/find_locations.rb +27 -0
  137. data/lib/ruby_ptv_api/operation/x_locate/find_suggestion.rb +36 -0
  138. data/lib/ruby_ptv_api/operation/x_route/base.rb +25 -0
  139. data/lib/ruby_ptv_api/operation/x_route/calculate_reachable_objects.rb +38 -0
  140. data/lib/ruby_ptv_api/operation/x_route/calculate_route.rb +35 -0
  141. data/lib/ruby_ptv_api/operation/x_route/calculate_route_info.rb +33 -0
  142. data/lib/ruby_ptv_api/operation/x_tour/base.rb +24 -0
  143. data/lib/ruby_ptv_api/operation/x_tour/plan_basic_tours.rb +48 -0
  144. data/lib/ruby_ptv_api/operation/x_tour/plan_sequence.rb +52 -0
  145. data/lib/ruby_ptv_api/version.rb +3 -0
  146. data/lib/ruby_ptv_api/x_tour.rb +94 -0
  147. data/lib/ruby_ptv_api.rb +202 -0
  148. data/ruby_ptv_api.gemspec +32 -0
  149. 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,10 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class AbstractCosts < RubyPtvApi::Model::Base
5
+ property 'costsPerKm'
6
+ property 'fixedCosts'
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class AbstractTour < RubyPtvApi::Model::Base
5
+ property 'startTimeFixed'
6
+ property 'startTimeEarliest'
7
+ end
8
+ end
9
+ end
10
+ 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,11 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class AbstractTransportOrder < RubyPtvApi::Model::Base
5
+ property 'id', required: true
6
+ property 'priority'
7
+ property 'productId'
8
+ end
9
+ end
10
+ end
11
+ 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,11 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class Capacities < RubyPtvApi::Model::Base
5
+ property 'capacities'
6
+
7
+ coerce_key :capacities, Array[Quantities]
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class Chain < RubyPtvApi::Model::Base
5
+ property 'vehicleId'
6
+ property 'tours'
7
+ property 'result'
8
+
9
+ coerce_key :tours, Array[Tour]
10
+ coerce_key :result, ChainResult
11
+ end
12
+ end
13
+ end
14
+ end
@@ -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,10 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class Costs < AbstractCosts
5
+ property 'costsPerHourDriverOnly'
6
+ property 'costsPerHourWithCoDriver'
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,8 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class Depot < LogisticPoint
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,12 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class DistanceMatrixByRoad < DistanceMatrixCalculation
5
+ property 'deleteBeforeUsage'
6
+ property 'deleteAfterUsage'
7
+ property 'profileName'
8
+ property 'referenceTime'
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,9 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class DistanceMatrixCalculation < RubyPtvApi::Model::Base
5
+ property 'dimaId'
6
+ end
7
+ end
8
+ end
9
+ 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,13 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class LoadingArea < AbstractTransportOrder
5
+ property 'length'
6
+ property 'width'
7
+ property 'height'
8
+ property 'weight'
9
+
10
+ end
11
+ end
12
+ end
13
+ 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,10 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class MaximumTourPeriodRestriction < RubyPtvApi::Model::Base
5
+ property 'maximumNetTourPeriod'
6
+ property 'maximumAllowableTourPeriod'
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,13 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class Plan < RubyPtvApi::Model::Base
5
+ property 'chains'
6
+ property 'result'
7
+
8
+ coerce_key :chains, Array[Chain]
9
+ coerce_key :result, PlanResult
10
+ end
11
+ end
12
+ end
13
+ 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,11 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class ProductIncompatibility < RubyPtvApi::Model::Base
5
+ property 'productId1'
6
+ property 'productId2'
7
+ property 'incompatibilityType'
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class Quantities < RubyPtvApi::Model::Base
5
+ property 'quantities'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class QuantityDependentPeriods < RubyPtvApi::Model::Base
5
+ property 'secondsPerQuantityUnit'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class RegulationsBase < RubyPtvApi::Model::Base
5
+ property 'id'
6
+ end
7
+ end
8
+ end
9
+ 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,9 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class QuantityDependentPeriods < RubyPtvApi::Model::Base
5
+ property 'secondsPerQuantityUnit'
6
+ end
7
+ end
8
+ end
9
+ 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,13 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class SequencingPlan < RubyPtvApi::Model::Base
5
+ property 'tour'
6
+ property 'result'
7
+
8
+ coerce_key :tour, SequencingTour
9
+ coerce_key :result, SequencingPlanResult
10
+ end
11
+ end
12
+ end
13
+ 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