Skip to content

Commit 4a17cb6

Browse files
Dmitry KovalDmitry Koval
authored andcommitted
Schedules support
1 parent 18eed54 commit 4a17cb6

36 files changed

+2124
-16
lines changed

route4me-csharp-sdk/Route4MeSDKLibrary/Consts.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,22 @@ public static class R4MEInfrastructureSettingsV5
266266

267267
#endregion
268268

269+
#region Schedules
270+
271+
public const string RecurringRoutes = MainHost + "/recurring-routes";
272+
public const string Schedules = RecurringRoutes + "/schedules";
273+
public const string SchedulesPagination = Schedules + "/pagination";
274+
275+
public const string RouteSchedules = RecurringRoutes + "/route-schedules";
276+
public const string RouteSchedulesPagination = RouteSchedules + "/pagination";
277+
public const string ReplaceRouteSchedules = RouteSchedules + "/replace";
278+
public const string RouteSchedulesIsCopy = RouteSchedules + "/is-copy";
279+
public const string RouteSchedulesCopies = RouteSchedules + "/get-copies";
280+
281+
public const string MasterRoutes = RecurringRoutes + "/master-routes";
282+
283+
#endregion
284+
269285
#endregion
270286
}
271287
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System.Runtime.Serialization;
2+
using Route4MeSDK.QueryTypes;
3+
4+
namespace Route4MeSDKLibrary.DataTypes.V5.Schedules
5+
{
6+
/// <summary>
7+
/// Route Schedule
8+
/// </summary>
9+
[DataContract]
10+
public class RouteSchedule : GenericParameters
11+
{
12+
/// <summary>
13+
/// Member id
14+
/// </summary>
15+
[DataMember(Name = "member_id", EmitDefaultValue = false)]
16+
public long? MemberId { get; set; }
17+
18+
/// <summary>
19+
/// UID
20+
/// </summary>
21+
[DataMember(Name = "schedule_uid", EmitDefaultValue = false)]
22+
public string ScheduleUid { get; set; }
23+
24+
/// <summary>
25+
/// Route id
26+
/// </summary>
27+
[DataMember(Name = "route_id", EmitDefaultValue = false)]
28+
public string RouteId { get; set; }
29+
30+
/// <summary>
31+
/// Vehicle id
32+
/// </summary>
33+
[DataMember(Name = "vehicle_id", EmitDefaultValue = false)]
34+
public string VehicleId { get; set; }
35+
}
36+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
using System.Runtime.Serialization;
2+
3+
namespace Route4MeSDKLibrary.DataTypes.V5.Schedules
4+
{
5+
/// <summary>
6+
/// Route schedule copies response
7+
/// </summary>
8+
[DataContract]
9+
public class RouteScheduleCopiesResponse
10+
{
11+
/// <summary>
12+
/// Parent route ID
13+
/// </summary>
14+
[DataMember(Name = "parent_route_id", EmitDefaultValue = false)]
15+
public string ParentRouteId { get; set; }
16+
17+
/// <summary>
18+
/// Scheduled routes
19+
/// </summary>
20+
[DataMember(Name = "scheduled_routes", EmitDefaultValue = false)]
21+
public ScheduledRoute[] ScheduledRoutes { get; set; }
22+
}
23+
24+
/// <summary>
25+
/// Scheduled route
26+
/// </summary>
27+
[DataContract]
28+
public class ScheduledRoute
29+
{
30+
/// <summary>
31+
/// Schedule UID
32+
/// </summary>
33+
[DataMember(Name = "schedule_uid", EmitDefaultValue = false)]
34+
public string ScheduleUid { get; set; }
35+
36+
/// <summary>
37+
/// Child route ID
38+
/// </summary>
39+
[DataMember(Name = "child_route_id", EmitDefaultValue = false)]
40+
public string ChildRouteId { get; set; }
41+
42+
/// <summary>
43+
/// Route date
44+
/// </summary>
45+
[DataMember(Name = "route_date", EmitDefaultValue = false)]
46+
public string RouteDate { get; set; }
47+
}
48+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System.Runtime.Serialization;
2+
3+
namespace Route4MeSDKLibrary.DataTypes.V5.Schedules
4+
{
5+
/// <summary>
6+
/// Route Schedule list response
7+
/// </summary>
8+
[DataContract]
9+
public class RouteScheduleList
10+
{
11+
/// <summary>
12+
/// Data
13+
/// </summary>
14+
[DataMember(Name = "data", EmitDefaultValue = false)]
15+
public RouteSchedule[] Data { get; set; }
16+
}
17+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using System.Runtime.Serialization;
2+
3+
namespace Route4MeSDKLibrary.DataTypes.V5.Schedules
4+
{
5+
/// <summary>
6+
/// Route Schedule list pagination response
7+
/// </summary>
8+
[DataContract]
9+
public class RouteScheduleListWithPagination : RouteScheduleList
10+
{
11+
/// <summary>
12+
/// Links
13+
/// </summary>
14+
[DataMember(Name = "links", EmitDefaultValue = false)]
15+
public ScheduleLinks Links { get; set; }
16+
17+
/// <summary>
18+
/// Meta
19+
/// </summary>
20+
[DataMember(Name = "meta", EmitDefaultValue = false)]
21+
public ScheduleMeta Meta { get; set; }
22+
}
23+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
using System.Runtime.Serialization;
2+
3+
namespace Route4MeSDKLibrary.DataTypes.V5.Schedules
4+
{
5+
/// <summary>
6+
/// Route schedule preview
7+
/// </summary>
8+
[DataContract]
9+
public class RouteSchedulePreview
10+
{
11+
/// <summary>
12+
/// Version
13+
/// </summary>
14+
[DataMember(Name = "version", EmitDefaultValue = false)]
15+
public string Version { get; set; }
16+
17+
/// <summary>
18+
/// Dates
19+
/// </summary>
20+
[DataMember(Name = "dates", EmitDefaultValue = false)]
21+
public RouteSchedulePreviewDates[] Dates { get; set; }
22+
}
23+
24+
/// <summary>
25+
/// Route schedule preview dates
26+
/// </summary>
27+
[DataContract]
28+
public class RouteSchedulePreviewDates
29+
{
30+
/// <summary>
31+
/// Date
32+
/// </summary>
33+
[DataMember(Name = "date", EmitDefaultValue = false)]
34+
public string Date { get; set; }
35+
36+
/// <summary>
37+
/// Scheduled
38+
/// </summary>
39+
[DataMember(Name = "scheduled", EmitDefaultValue = false)]
40+
public bool Scheduled { get; set; }
41+
42+
/// <summary>
43+
/// Created
44+
/// </summary>
45+
[DataMember(Name = "created", EmitDefaultValue = false)]
46+
public bool Created { get; set; }
47+
48+
/// <summary>
49+
/// Date
50+
/// </summary>
51+
[DataMember(Name = "excluded", EmitDefaultValue = false)]
52+
public bool Excluded { get; set; }
53+
}
54+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
using System.Runtime.Serialization;
2+
3+
namespace Route4MeSDKLibrary.DataTypes.V5.Schedules
4+
{
5+
[DataContract]
6+
public class RouteScheduleResponse
7+
{
8+
/// <summary>
9+
/// Data
10+
/// </summary>
11+
[DataMember(Name = "data", EmitDefaultValue = false)]
12+
public RouteScheduleResponseData[] Data { get; set; }
13+
}
14+
15+
[DataContract]
16+
public class RouteScheduleResponseData
17+
{
18+
/// <summary>
19+
/// Route ID
20+
/// </summary>
21+
[DataMember(Name = "route_id", EmitDefaultValue = false)]
22+
public string RouteId { get; set; }
23+
24+
/// <summary>
25+
/// Route name
26+
/// </summary>
27+
[DataMember(Name = "route_name", EmitDefaultValue = false)]
28+
public string RouteName { get; set; }
29+
30+
/// <summary>
31+
/// Schedule UID
32+
/// </summary>
33+
[DataMember(Name = "schedule_uid", EmitDefaultValue = false)]
34+
public string ScheduleUid { get; set; }
35+
36+
/// <summary>
37+
/// Member id
38+
/// </summary>
39+
[DataMember(Name = "member_id", EmitDefaultValue = false)]
40+
public long? MemberId { get; set; }
41+
42+
/// <summary>
43+
/// Vehicle id
44+
/// </summary>
45+
[DataMember(Name = "vehicle_id", EmitDefaultValue = false)]
46+
public string VehicleId { get; set; }
47+
48+
/// <summary>
49+
/// Schedule
50+
/// </summary>
51+
[DataMember(Name = "schedule", EmitDefaultValue = false)]
52+
public Schedule Schedule { get; set; }
53+
}
54+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
using System.Runtime.Serialization;
2+
using Newtonsoft.Json.Linq;
3+
using Route4MeSDK.QueryTypes;
4+
5+
namespace Route4MeSDKLibrary.DataTypes.V5.Schedules
6+
{
7+
/// <summary>
8+
/// Schedule
9+
/// </summary>
10+
[DataContract]
11+
public class Schedule : GenericParameters
12+
{
13+
/// <summary>
14+
/// Schedule name
15+
/// </summary>
16+
[DataMember(Name = "name", EmitDefaultValue = false)]
17+
public string Name { get; set; }
18+
19+
/// <summary>
20+
/// Root member id
21+
/// </summary>
22+
[DataMember(Name = "root_member_id", EmitDefaultValue = false)]
23+
public long? RootMemberId { get; set; }
24+
25+
/// <summary>
26+
/// UID
27+
/// </summary>
28+
[DataMember(Name = "schedule_uid", EmitDefaultValue = false)]
29+
public string ScheduleUid { get; set; }
30+
31+
/// <summary>
32+
/// Advanced interval
33+
/// </summary>
34+
[DataMember(Name = "advance_interval", EmitDefaultValue = false)]
35+
public int? AdvancedInterval { get; set; }
36+
37+
/// <summary>
38+
/// Advanced schedule interval days
39+
/// </summary>
40+
[DataMember(Name = "advance_schedule_interval_days", EmitDefaultValue = false)]
41+
public int? AdvancedScheduleIntervalDays { get; set; }
42+
43+
/// <summary>
44+
/// Schedule black list
45+
/// </summary>
46+
[DataMember(Name = "schedule_blacklist", EmitDefaultValue = false)]
47+
public string[] ScheduleBlacklist { get; set; }
48+
49+
/// <summary>
50+
/// Timezone
51+
/// </summary>
52+
[DataMember(Name = "timezone", EmitDefaultValue = false)]
53+
public string Timezone { get; set; }
54+
55+
/// <summary>
56+
/// Schedule
57+
/// </summary>
58+
[DataMember(Name = "schedule", EmitDefaultValue = false)]
59+
public JObject ScheduleData { get; set; }
60+
}
61+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
using System.Runtime.Serialization;
2+
3+
namespace Route4MeSDKLibrary.DataTypes.V5.Schedules
4+
{
5+
/// <summary>
6+
/// Schedule links
7+
/// </summary>
8+
[DataContract]
9+
public class ScheduleLinks
10+
{
11+
/// <summary>
12+
/// First
13+
/// </summary>
14+
[DataMember(Name = "first", EmitDefaultValue = false)]
15+
public string First { get; set; }
16+
17+
/// <summary>
18+
/// Last
19+
/// </summary>
20+
[DataMember(Name = "last", EmitDefaultValue = false)]
21+
public string Last { get; set; }
22+
23+
/// <summary>
24+
/// Prev
25+
/// </summary>
26+
[DataMember(Name = "prev", EmitDefaultValue = false)]
27+
public string Prev { get; set; }
28+
29+
/// <summary>
30+
/// Next
31+
/// </summary>
32+
[DataMember(Name = "next", EmitDefaultValue = false)]
33+
public string Next { get; set; }
34+
}
35+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System.Runtime.Serialization;
2+
3+
namespace Route4MeSDKLibrary.DataTypes.V5.Schedules
4+
{
5+
/// <summary>
6+
/// Schedule list response
7+
/// </summary>
8+
[DataContract]
9+
public class ScheduleList
10+
{
11+
/// <summary>
12+
/// Data
13+
/// </summary>
14+
[DataMember(Name = "data", EmitDefaultValue = false)]
15+
public Schedule[] Data { get; set; }
16+
}
17+
}

0 commit comments

Comments
 (0)