| POST,OPTIONS | /v1/worker/dispatch/od/location |
|---|
import 'package:servicestack/servicestack.dart';
class CourierVanView implements IConvertible
{
String? State;
DateTime? LeaveByUtc;
String? LeaveByText;
int? SlackMin;
int? InVan;
int? Committed;
double? Cap;
String? CapUnit;
String? VehicleUnit;
String? CriticalCode;
int? DriveMin;
String? FacilityName;
String? SendNote;
CourierVanView({this.State,this.LeaveByUtc,this.LeaveByText,this.SlackMin,this.InVan,this.Committed,this.Cap,this.CapUnit,this.VehicleUnit,this.CriticalCode,this.DriveMin,this.FacilityName,this.SendNote});
CourierVanView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
State = json['State'];
LeaveByUtc = JsonConverters.fromJson(json['LeaveByUtc'],'DateTime',context!);
LeaveByText = json['LeaveByText'];
SlackMin = json['SlackMin'];
InVan = json['InVan'];
Committed = json['Committed'];
Cap = JsonConverters.toDouble(json['Cap']);
CapUnit = json['CapUnit'];
VehicleUnit = json['VehicleUnit'];
CriticalCode = json['CriticalCode'];
DriveMin = json['DriveMin'];
FacilityName = json['FacilityName'];
SendNote = json['SendNote'];
return this;
}
Map<String, dynamic> toJson() => {
'State': State,
'LeaveByUtc': JsonConverters.toJson(LeaveByUtc,'DateTime',context!),
'LeaveByText': LeaveByText,
'SlackMin': SlackMin,
'InVan': InVan,
'Committed': Committed,
'Cap': Cap,
'CapUnit': CapUnit,
'VehicleUnit': VehicleUnit,
'CriticalCode': CriticalCode,
'DriveMin': DriveMin,
'FacilityName': FacilityName,
'SendNote': SendNote
};
getTypeName() => "CourierVanView";
TypeContext? context = _ctx;
}
class CourierItemView implements IConvertible
{
int? CourierItemID;
int? DispatchOdRequestID;
int? Seq;
String? TagCode;
String? Custody;
bool? IsOpen;
bool? IsMissing;
String? MissingReason;
bool? IsManual;
bool? ReTagFlag;
bool? Scanned;
CourierItemView({this.CourierItemID,this.DispatchOdRequestID,this.Seq,this.TagCode,this.Custody,this.IsOpen,this.IsMissing,this.MissingReason,this.IsManual,this.ReTagFlag,this.Scanned});
CourierItemView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
CourierItemID = json['CourierItemID'];
DispatchOdRequestID = json['DispatchOdRequestID'];
Seq = json['Seq'];
TagCode = json['TagCode'];
Custody = json['Custody'];
IsOpen = json['IsOpen'];
IsMissing = json['IsMissing'];
MissingReason = json['MissingReason'];
IsManual = json['IsManual'];
ReTagFlag = json['ReTagFlag'];
Scanned = json['Scanned'];
return this;
}
Map<String, dynamic> toJson() => {
'CourierItemID': CourierItemID,
'DispatchOdRequestID': DispatchOdRequestID,
'Seq': Seq,
'TagCode': TagCode,
'Custody': Custody,
'IsOpen': IsOpen,
'IsMissing': IsMissing,
'MissingReason': MissingReason,
'IsManual': IsManual,
'ReTagFlag': ReTagFlag,
'Scanned': Scanned
};
getTypeName() => "CourierItemView";
TypeContext? context = _ctx;
}
class CourierDriverOrder implements IConvertible
{
String? Code;
String? CourierStep;
String? RouteShape;
String? ProfileName;
String? UnitOne;
String? UnitMany;
String? FacilityNoun;
String? FacilityName;
String? LevelName;
DateTime? DueUtc;
String? DueText;
int? Units;
int? UnitsFound;
String? Area;
int? Minutes;
String? Address;
String? Unit;
String? City;
double? Lat;
double? Lng;
String? CustomerName;
String? CustomerPhone;
String? Handoff;
String? GateCode;
String? Instructions;
String? DropoffAddress;
String? DropoffContactName;
double? DropLat;
double? DropLng;
DateTime? ArrivedUtc;
List<CourierItemView>? Tags = [];
Map<String,String?>? Proof = {};
Map<String,int?>? Photos = {};
List<String>? Needs = [];
int? MissedWaitMin;
bool? MissedRequireContact;
bool? MissedRequirePhoto;
double? MissedFee;
CourierDriverOrder({this.Code,this.CourierStep,this.RouteShape,this.ProfileName,this.UnitOne,this.UnitMany,this.FacilityNoun,this.FacilityName,this.LevelName,this.DueUtc,this.DueText,this.Units,this.UnitsFound,this.Area,this.Minutes,this.Address,this.Unit,this.City,this.Lat,this.Lng,this.CustomerName,this.CustomerPhone,this.Handoff,this.GateCode,this.Instructions,this.DropoffAddress,this.DropoffContactName,this.DropLat,this.DropLng,this.ArrivedUtc,this.Tags,this.Proof,this.Photos,this.Needs,this.MissedWaitMin,this.MissedRequireContact,this.MissedRequirePhoto,this.MissedFee});
CourierDriverOrder.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Code = json['Code'];
CourierStep = json['CourierStep'];
RouteShape = json['RouteShape'];
ProfileName = json['ProfileName'];
UnitOne = json['UnitOne'];
UnitMany = json['UnitMany'];
FacilityNoun = json['FacilityNoun'];
FacilityName = json['FacilityName'];
LevelName = json['LevelName'];
DueUtc = JsonConverters.fromJson(json['DueUtc'],'DateTime',context!);
DueText = json['DueText'];
Units = json['Units'];
UnitsFound = json['UnitsFound'];
Area = json['Area'];
Minutes = json['Minutes'];
Address = json['Address'];
Unit = json['Unit'];
City = json['City'];
Lat = JsonConverters.toDouble(json['Lat']);
Lng = JsonConverters.toDouble(json['Lng']);
CustomerName = json['CustomerName'];
CustomerPhone = json['CustomerPhone'];
Handoff = json['Handoff'];
GateCode = json['GateCode'];
Instructions = json['Instructions'];
DropoffAddress = json['DropoffAddress'];
DropoffContactName = json['DropoffContactName'];
DropLat = JsonConverters.toDouble(json['DropLat']);
DropLng = JsonConverters.toDouble(json['DropLng']);
ArrivedUtc = JsonConverters.fromJson(json['ArrivedUtc'],'DateTime',context!);
Tags = JsonConverters.fromJson(json['Tags'],'List<CourierItemView>',context!);
Proof = JsonConverters.toStringMap(json['Proof']);
Photos = JsonConverters.fromJson(json['Photos'],'Map<String,int?>',context!);
Needs = JsonConverters.fromJson(json['Needs'],'List<String>',context!);
MissedWaitMin = json['MissedWaitMin'];
MissedRequireContact = json['MissedRequireContact'];
MissedRequirePhoto = json['MissedRequirePhoto'];
MissedFee = JsonConverters.toDouble(json['MissedFee']);
return this;
}
Map<String, dynamic> toJson() => {
'Code': Code,
'CourierStep': CourierStep,
'RouteShape': RouteShape,
'ProfileName': ProfileName,
'UnitOne': UnitOne,
'UnitMany': UnitMany,
'FacilityNoun': FacilityNoun,
'FacilityName': FacilityName,
'LevelName': LevelName,
'DueUtc': JsonConverters.toJson(DueUtc,'DateTime',context!),
'DueText': DueText,
'Units': Units,
'UnitsFound': UnitsFound,
'Area': Area,
'Minutes': Minutes,
'Address': Address,
'Unit': Unit,
'City': City,
'Lat': Lat,
'Lng': Lng,
'CustomerName': CustomerName,
'CustomerPhone': CustomerPhone,
'Handoff': Handoff,
'GateCode': GateCode,
'Instructions': Instructions,
'DropoffAddress': DropoffAddress,
'DropoffContactName': DropoffContactName,
'DropLat': DropLat,
'DropLng': DropLng,
'ArrivedUtc': JsonConverters.toJson(ArrivedUtc,'DateTime',context!),
'Tags': JsonConverters.toJson(Tags,'List<CourierItemView>',context!),
'Proof': Proof,
'Photos': JsonConverters.toJson(Photos,'Map<String,int?>',context!),
'Needs': JsonConverters.toJson(Needs,'List<String>',context!),
'MissedWaitMin': MissedWaitMin,
'MissedRequireContact': MissedRequireContact,
'MissedRequirePhoto': MissedRequirePhoto,
'MissedFee': MissedFee
};
getTypeName() => "CourierDriverOrder";
TypeContext? context = _ctx;
}
class CourierStopView implements IConvertible
{
int? Sequence;
String? Status;
int? DispatchOdRequestID;
String? Code;
String? CourierStep;
String? Address;
String? Unit;
String? City;
String? Zip;
double? Lat;
double? Lng;
String? CustomerName;
String? CustomerPhone;
String? Handoff;
String? GateCode;
String? Instructions;
int? Units;
String? DueText;
String? Note;
List<String>? Needs = [];
List<CourierItemView>? Items = [];
CourierStopView({this.Sequence,this.Status,this.DispatchOdRequestID,this.Code,this.CourierStep,this.Address,this.Unit,this.City,this.Zip,this.Lat,this.Lng,this.CustomerName,this.CustomerPhone,this.Handoff,this.GateCode,this.Instructions,this.Units,this.DueText,this.Note,this.Needs,this.Items});
CourierStopView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Sequence = json['Sequence'];
Status = json['Status'];
DispatchOdRequestID = json['DispatchOdRequestID'];
Code = json['Code'];
CourierStep = json['CourierStep'];
Address = json['Address'];
Unit = json['Unit'];
City = json['City'];
Zip = json['Zip'];
Lat = JsonConverters.toDouble(json['Lat']);
Lng = JsonConverters.toDouble(json['Lng']);
CustomerName = json['CustomerName'];
CustomerPhone = json['CustomerPhone'];
Handoff = json['Handoff'];
GateCode = json['GateCode'];
Instructions = json['Instructions'];
Units = json['Units'];
DueText = json['DueText'];
Note = json['Note'];
Needs = JsonConverters.fromJson(json['Needs'],'List<String>',context!);
Items = JsonConverters.fromJson(json['Items'],'List<CourierItemView>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Sequence': Sequence,
'Status': Status,
'DispatchOdRequestID': DispatchOdRequestID,
'Code': Code,
'CourierStep': CourierStep,
'Address': Address,
'Unit': Unit,
'City': City,
'Zip': Zip,
'Lat': Lat,
'Lng': Lng,
'CustomerName': CustomerName,
'CustomerPhone': CustomerPhone,
'Handoff': Handoff,
'GateCode': GateCode,
'Instructions': Instructions,
'Units': Units,
'DueText': DueText,
'Note': Note,
'Needs': JsonConverters.toJson(Needs,'List<String>',context!),
'Items': JsonConverters.toJson(Items,'List<CourierItemView>',context!)
};
getTypeName() => "CourierStopView";
TypeContext? context = _ctx;
}
class CourierRunView implements IConvertible
{
int? CourierRunID;
String? Code;
String? Status;
int? CourierProfileId;
String? ProfileName;
int? CourierFacilityId;
String? FacilityName;
String? FacilityAddress;
int? DriverContactId;
String? DriverName;
int? EquipmentID;
String? VehicleUnit;
String? UnitOne;
String? UnitMany;
int? Units;
int? StopCount;
int? StopsDone;
double? Pay;
DateTime? BuiltUtc;
DateTime? StartedUtc;
DateTime? CompletedUtc;
int? ToLoad;
int? ToReturn;
List<CourierStopView>? Stops = [];
CourierRunView({this.CourierRunID,this.Code,this.Status,this.CourierProfileId,this.ProfileName,this.CourierFacilityId,this.FacilityName,this.FacilityAddress,this.DriverContactId,this.DriverName,this.EquipmentID,this.VehicleUnit,this.UnitOne,this.UnitMany,this.Units,this.StopCount,this.StopsDone,this.Pay,this.BuiltUtc,this.StartedUtc,this.CompletedUtc,this.ToLoad,this.ToReturn,this.Stops});
CourierRunView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
CourierRunID = json['CourierRunID'];
Code = json['Code'];
Status = json['Status'];
CourierProfileId = json['CourierProfileId'];
ProfileName = json['ProfileName'];
CourierFacilityId = json['CourierFacilityId'];
FacilityName = json['FacilityName'];
FacilityAddress = json['FacilityAddress'];
DriverContactId = json['DriverContactId'];
DriverName = json['DriverName'];
EquipmentID = json['EquipmentID'];
VehicleUnit = json['VehicleUnit'];
UnitOne = json['UnitOne'];
UnitMany = json['UnitMany'];
Units = json['Units'];
StopCount = json['StopCount'];
StopsDone = json['StopsDone'];
Pay = JsonConverters.toDouble(json['Pay']);
BuiltUtc = JsonConverters.fromJson(json['BuiltUtc'],'DateTime',context!);
StartedUtc = JsonConverters.fromJson(json['StartedUtc'],'DateTime',context!);
CompletedUtc = JsonConverters.fromJson(json['CompletedUtc'],'DateTime',context!);
ToLoad = json['ToLoad'];
ToReturn = json['ToReturn'];
Stops = JsonConverters.fromJson(json['Stops'],'List<CourierStopView>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'CourierRunID': CourierRunID,
'Code': Code,
'Status': Status,
'CourierProfileId': CourierProfileId,
'ProfileName': ProfileName,
'CourierFacilityId': CourierFacilityId,
'FacilityName': FacilityName,
'FacilityAddress': FacilityAddress,
'DriverContactId': DriverContactId,
'DriverName': DriverName,
'EquipmentID': EquipmentID,
'VehicleUnit': VehicleUnit,
'UnitOne': UnitOne,
'UnitMany': UnitMany,
'Units': Units,
'StopCount': StopCount,
'StopsDone': StopsDone,
'Pay': Pay,
'BuiltUtc': JsonConverters.toJson(BuiltUtc,'DateTime',context!),
'StartedUtc': JsonConverters.toJson(StartedUtc,'DateTime',context!),
'CompletedUtc': JsonConverters.toJson(CompletedUtc,'DateTime',context!),
'ToLoad': ToLoad,
'ToReturn': ToReturn,
'Stops': JsonConverters.toJson(Stops,'List<CourierStopView>',context!)
};
getTypeName() => "CourierRunView";
TypeContext? context = _ctx;
}
class CourierDriverView implements IConvertible
{
String? DriverCode;
String? Name;
bool? Online;
bool? OnRoster;
CourierVanView? Van;
CourierDriverOrder? Current;
List<CourierDriverOrder>? Queue = [];
List<CourierDriverOrder>? Aboard = [];
List<CourierRunView>? Runs = [];
CourierDriverOrder? UpNext;
CourierDriverView({this.DriverCode,this.Name,this.Online,this.OnRoster,this.Van,this.Current,this.Queue,this.Aboard,this.Runs,this.UpNext});
CourierDriverView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
DriverCode = json['DriverCode'];
Name = json['Name'];
Online = json['Online'];
OnRoster = json['OnRoster'];
Van = JsonConverters.fromJson(json['Van'],'CourierVanView',context!);
Current = JsonConverters.fromJson(json['Current'],'CourierDriverOrder',context!);
Queue = JsonConverters.fromJson(json['Queue'],'List<CourierDriverOrder>',context!);
Aboard = JsonConverters.fromJson(json['Aboard'],'List<CourierDriverOrder>',context!);
Runs = JsonConverters.fromJson(json['Runs'],'List<CourierRunView>',context!);
UpNext = JsonConverters.fromJson(json['UpNext'],'CourierDriverOrder',context!);
return this;
}
Map<String, dynamic> toJson() => {
'DriverCode': DriverCode,
'Name': Name,
'Online': Online,
'OnRoster': OnRoster,
'Van': JsonConverters.toJson(Van,'CourierVanView',context!),
'Current': JsonConverters.toJson(Current,'CourierDriverOrder',context!),
'Queue': JsonConverters.toJson(Queue,'List<CourierDriverOrder>',context!),
'Aboard': JsonConverters.toJson(Aboard,'List<CourierDriverOrder>',context!),
'Runs': JsonConverters.toJson(Runs,'List<CourierRunView>',context!),
'UpNext': JsonConverters.toJson(UpNext,'CourierDriverOrder',context!)
};
getTypeName() => "CourierDriverView";
TypeContext? context = _ctx;
}
class CourierDriverResponse implements IConvertible
{
CourierDriverView? Courier;
String? Result;
String? Detail;
String? Message;
ResponseStatus? ResponseStatus;
CourierDriverResponse({this.Courier,this.Result,this.Detail,this.Message,this.ResponseStatus});
CourierDriverResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Courier = JsonConverters.fromJson(json['Courier'],'CourierDriverView',context!);
Result = json['Result'];
Detail = json['Detail'];
Message = json['Message'];
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Courier': JsonConverters.toJson(Courier,'CourierDriverView',context!),
'Result': Result,
'Detail': Detail,
'Message': Message,
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
};
getTypeName() => "CourierDriverResponse";
TypeContext? context = _ctx;
}
class CourierDriverLocationRequest implements IConvertible
{
double? Lat;
double? Lng;
CourierDriverLocationRequest({this.Lat,this.Lng});
CourierDriverLocationRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Lat = JsonConverters.toDouble(json['Lat']);
Lng = JsonConverters.toDouble(json['Lng']);
return this;
}
Map<String, dynamic> toJson() => {
'Lat': Lat,
'Lng': Lng
};
getTypeName() => "CourierDriverLocationRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'CourierVanView': TypeInfo(TypeOf.Class, create:() => CourierVanView()),
'CourierItemView': TypeInfo(TypeOf.Class, create:() => CourierItemView()),
'CourierDriverOrder': TypeInfo(TypeOf.Class, create:() => CourierDriverOrder()),
'List<CourierItemView>': TypeInfo(TypeOf.Class, create:() => <CourierItemView>[]),
'Map<String,int?>': TypeInfo(TypeOf.Class, create:() => Map<String,int?>()),
'CourierStopView': TypeInfo(TypeOf.Class, create:() => CourierStopView()),
'CourierRunView': TypeInfo(TypeOf.Class, create:() => CourierRunView()),
'List<CourierStopView>': TypeInfo(TypeOf.Class, create:() => <CourierStopView>[]),
'CourierDriverView': TypeInfo(TypeOf.Class, create:() => CourierDriverView()),
'List<CourierDriverOrder>': TypeInfo(TypeOf.Class, create:() => <CourierDriverOrder>[]),
'List<CourierRunView>': TypeInfo(TypeOf.Class, create:() => <CourierRunView>[]),
'CourierDriverResponse': TypeInfo(TypeOf.Class, create:() => CourierDriverResponse()),
'CourierDriverLocationRequest': TypeInfo(TypeOf.Class, create:() => CourierDriverLocationRequest()),
});
Dart CourierDriverLocationRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/worker/dispatch/od/location HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
Lat: 0,
Lng: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Courier:
{
DriverCode: String,
Name: String,
Online: False,
OnRoster: False,
Van:
{
State: String,
LeaveByUtc: 0001-01-01,
LeaveByText: String,
SlackMin: 0,
InVan: 0,
Committed: 0,
Cap: 0,
CapUnit: String,
VehicleUnit: String,
CriticalCode: String,
DriveMin: 0,
FacilityName: String,
SendNote: String
},
Current:
{
Code: String,
CourierStep: String,
RouteShape: String,
ProfileName: String,
UnitOne: String,
UnitMany: String,
FacilityNoun: String,
FacilityName: String,
LevelName: String,
DueUtc: 0001-01-01,
DueText: String,
Units: 0,
UnitsFound: 0,
Area: String,
Minutes: 0,
Address: String,
Unit: String,
City: String,
Lat: 0,
Lng: 0,
CustomerName: String,
CustomerPhone: String,
Handoff: String,
GateCode: String,
Instructions: String,
DropoffAddress: String,
DropoffContactName: String,
DropLat: 0,
DropLng: 0,
ArrivedUtc: 0001-01-01,
Tags:
[
{
CourierItemID: 0,
DispatchOdRequestID: 0,
Seq: 0,
TagCode: String,
Custody: String,
IsOpen: False,
IsMissing: False,
MissingReason: String,
IsManual: False,
ReTagFlag: False,
Scanned: False
}
],
Proof:
{
String: String
},
Photos:
{
String: 0
},
Needs:
[
String
],
MissedWaitMin: 0,
MissedRequireContact: False,
MissedRequirePhoto: False,
MissedFee: 0
},
Queue:
[
{
Code: String,
CourierStep: String,
RouteShape: String,
ProfileName: String,
UnitOne: String,
UnitMany: String,
FacilityNoun: String,
FacilityName: String,
LevelName: String,
DueUtc: 0001-01-01,
DueText: String,
Units: 0,
UnitsFound: 0,
Area: String,
Minutes: 0,
Address: String,
Unit: String,
City: String,
Lat: 0,
Lng: 0,
CustomerName: String,
CustomerPhone: String,
Handoff: String,
GateCode: String,
Instructions: String,
DropoffAddress: String,
DropoffContactName: String,
DropLat: 0,
DropLng: 0,
ArrivedUtc: 0001-01-01,
Tags:
[
{
CourierItemID: 0,
DispatchOdRequestID: 0,
Seq: 0,
TagCode: String,
Custody: String,
IsOpen: False,
IsMissing: False,
MissingReason: String,
IsManual: False,
ReTagFlag: False,
Scanned: False
}
],
Proof:
{
String: String
},
Photos:
{
String: 0
},
Needs:
[
String
],
MissedWaitMin: 0,
MissedRequireContact: False,
MissedRequirePhoto: False,
MissedFee: 0
}
],
Aboard:
[
{
Code: String,
CourierStep: String,
RouteShape: String,
ProfileName: String,
UnitOne: String,
UnitMany: String,
FacilityNoun: String,
FacilityName: String,
LevelName: String,
DueUtc: 0001-01-01,
DueText: String,
Units: 0,
UnitsFound: 0,
Area: String,
Minutes: 0,
Address: String,
Unit: String,
City: String,
Lat: 0,
Lng: 0,
CustomerName: String,
CustomerPhone: String,
Handoff: String,
GateCode: String,
Instructions: String,
DropoffAddress: String,
DropoffContactName: String,
DropLat: 0,
DropLng: 0,
ArrivedUtc: 0001-01-01,
Tags:
[
{
CourierItemID: 0,
DispatchOdRequestID: 0,
Seq: 0,
TagCode: String,
Custody: String,
IsOpen: False,
IsMissing: False,
MissingReason: String,
IsManual: False,
ReTagFlag: False,
Scanned: False
}
],
Proof:
{
String: String
},
Photos:
{
String: 0
},
Needs:
[
String
],
MissedWaitMin: 0,
MissedRequireContact: False,
MissedRequirePhoto: False,
MissedFee: 0
}
],
Runs:
[
{
CourierRunID: 0,
Code: String,
Status: String,
CourierProfileId: 0,
ProfileName: String,
CourierFacilityId: 0,
FacilityName: String,
FacilityAddress: String,
DriverContactId: 0,
DriverName: String,
EquipmentID: 0,
VehicleUnit: String,
UnitOne: String,
UnitMany: String,
Units: 0,
StopCount: 0,
StopsDone: 0,
Pay: 0,
BuiltUtc: 0001-01-01,
StartedUtc: 0001-01-01,
CompletedUtc: 0001-01-01,
ToLoad: 0,
ToReturn: 0,
Stops:
[
{
Sequence: 0,
Status: String,
DispatchOdRequestID: 0,
Code: String,
CourierStep: String,
Address: String,
Unit: String,
City: String,
Zip: String,
Lat: 0,
Lng: 0,
CustomerName: String,
CustomerPhone: String,
Handoff: String,
GateCode: String,
Instructions: String,
Units: 0,
DueText: String,
Note: String,
Needs:
[
String
],
Items:
[
{
CourierItemID: 0,
DispatchOdRequestID: 0,
Seq: 0,
TagCode: String,
Custody: String,
IsOpen: False,
IsMissing: False,
MissingReason: String,
IsManual: False,
ReTagFlag: False,
Scanned: False
}
]
}
]
}
],
UpNext:
{
Code: String,
CourierStep: String,
RouteShape: String,
ProfileName: String,
UnitOne: String,
UnitMany: String,
FacilityNoun: String,
FacilityName: String,
LevelName: String,
DueUtc: 0001-01-01,
DueText: String,
Units: 0,
UnitsFound: 0,
Area: String,
Minutes: 0,
Address: String,
Unit: String,
City: String,
Lat: 0,
Lng: 0,
CustomerName: String,
CustomerPhone: String,
Handoff: String,
GateCode: String,
Instructions: String,
DropoffAddress: String,
DropoffContactName: String,
DropLat: 0,
DropLng: 0,
ArrivedUtc: 0001-01-01,
Tags:
[
{
CourierItemID: 0,
DispatchOdRequestID: 0,
Seq: 0,
TagCode: String,
Custody: String,
IsOpen: False,
IsMissing: False,
MissingReason: String,
IsManual: False,
ReTagFlag: False,
Scanned: False
}
],
Proof:
{
String: String
},
Photos:
{
String: 0
},
Needs:
[
String
],
MissedWaitMin: 0,
MissedRequireContact: False,
MissedRequirePhoto: False,
MissedFee: 0
}
},
Result: String,
Detail: String,
Message: String,
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
}
}