ruby_ptv_api 0.1.0

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.
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