| GET,OPTIONS | /v1/dispatch/courier/profiles/{Id} |
|---|
import Foundation
import ServiceStack
public class CourierProfileRequest : Codable
{
public var id:Int
public var facilityCode:String
required public init(){}
}
public class CourierResponse : Codable
{
public var profiles:[CourierProfileSummary] = []
public var templates:[CourierTemplateOption] = []
public var profile:CourierProfileView
public var issues:[CourierIssue] = []
public var changes:[CourierChange] = []
public var preview:CourierPreview
public var fleet:[CourierFleetVehicle] = []
public var responseStatus:ResponseStatus
required public init(){}
}
public class CourierProfileSummary : Codable
{
public var courierProfileID:Int
public var code:String
public var name:String
public var businessName:String
public var routeShape:String
public var enabled:Bool
public var templateFrom:String
public var drivers:Int
required public init(){}
}
public class CourierTemplateOption : Codable
{
public var key:String
public var label:String
public var detail:String
public var routeShape:String
required public init(){}
}
public class CourierProfileView : Codable
{
public var courierProfileID:Int
public var code:String
public var name:String
public var businessName:String
public var routeShape:String
public var enabled:Bool
public var templateFrom:String
public var unitOne:String
public var unitMany:String
public var facilityNoun:String
public var unitOneEs:String
public var unitManyEs:String
public var facilityNounEs:String
public var tagMode:String
public var tagFormats:[String] = []
public var pay:CourierPay
public var dispatch:CourierDispatch
public var missed:CourierMissed
public var privacy:CourierPrivacy
public var pricing:CourierPricing
public var booking:CourierBooking
public var facilities:[CourierFacilityView] = []
public var vehicles:[CourierVehicleView] = []
public var proof:[String:[String:String]] = [:]
public var context:CourierProfileContext
required public init(){}
}
public class CourierPay : Codable
{
public var workerClass:String
public var perPickup:Double
public var perStop:Double
public var perMissed:Double
public var perCancel:Double
public var waitAfterMin:Int
public var waitPerMin:Double
public var mileageOn:Bool
public var perMile:Double
public var minPerJob:Double
public var tipsPct:Double
required public init(){}
}
public class CourierDispatch : Codable
{
public var pingSecs:Int
public var radiusMi:Double
public var declinePenalty:Bool
public var nextRule:String
public var goMin:Int
public var lastMin:Int
public var nearFull:Int
public var marginMin:Int
public var trafficSource:String
required public init(){}
}
public class CourierMissed : Codable
{
public var waitMin:Int
public var fee:Double
public var cancelFee:Double
public var autoRebook:Bool
public var requireContact:Bool
public var requirePhoto:Bool
required public init(){}
}
public class CourierPrivacy : Codable
{
public var threadHrs:Int
public var photoDays:Int
public var lockNames:String
public var hideAddr:Bool
public var liveEta:Bool
public var tipping:Bool
required public init(){}
}
public class CourierPricing : Codable
{
public var base:Double
public var perUnit:Double
public var perMile:Double
public var minOrder:Double
public var taxPct:Double
public var finalAfterCount:Bool
public var serviceArea:[String] = []
public var windowMin:Int
public var surcharges:[String:Double] = [:]
required public init(){}
}
public class CourierBooking : Codable
{
public var on:Bool
public var slug:String
public var asap:Bool
public var minLeadMin:Int
public var open:String
public var close:String
public var driveBufferMin:Int
public var zips:[String] = []
public var recurring:Bool
public var payTiming:String
required public init(){}
}
public class CourierFacilityView : Codable
{
public var code:String
public var name:String
public var address:String
public var intakeMin:Int
public var levels:[CourierLevelView] = []
public var holidays:[String] = []
required public init(){}
}
public class CourierLevelView : Codable
{
public var code:String
public var name:String
public var inBy:String
public var withinMin:Int
public var ready:String
public var days:[Int] = []
public var isOn:Bool
required public init(){}
}
public class CourierVehicleView : Codable
{
public var equipmentID:Int
public var unitNumber:String
public var name:String
public var unit:String
public var cap:Double
public var cold:Bool
required public init(){}
}
public class CourierProfileContext : Codable
{
public var drivers:Int
public var profileCount:Int
public var payPlanId:Int?
public var zoneMode:String
public var zoneName:String
public var zoneCount:Int
public var hasBookingPage:Bool
public var hasRateConfig:Bool
public var vehicleFacts:[String:String] = [:]
required public init(){}
}
public class CourierIssue : Codable
{
public var key:String
public var section:String
public var message:String
required public init(){}
}
public class CourierChange : Codable
{
public var key:String
public var section:String
public var label:String
public var from:String
public var to:String
required public init(){}
}
public class CourierPreview : Codable
{
public var deadlineTitle:String
public var deadlineLead:String
public var roomW:String
public var lastW:String
public var goW:String
public var zones:[CourierPreviewLine] = []
public var paySub:String
public var payRows:[CourierPreviewLine] = []
public var payTotal:String
public var proofRows:[CourierPreviewLine] = []
public var ping:String
required public init(){}
}
public class CourierPreviewLine : Codable
{
public var k:String
public var v:String
public var dot:String
required public init(){}
}
public class CourierFleetVehicle : Codable
{
public var equipmentID:Int
public var unitNumber:String
public var name:String
public var vehicleType:String
public var unit:String
public var cap:Double?
public var cold:Bool
public var status:String
public var assigned:Bool
required public init(){}
}
Swift CourierProfileRequest 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.
GET /v1/dispatch/courier/profiles/{Id} HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Profiles:
[
{
CourierProfileID: 0,
Code: String,
Name: String,
BusinessName: String,
RouteShape: String,
Enabled: False,
TemplateFrom: String,
Drivers: 0
}
],
Templates:
[
{
Key: String,
Label: String,
Detail: String,
RouteShape: String
}
],
Profile:
{
CourierProfileID: 0,
Code: String,
Name: String,
BusinessName: String,
RouteShape: String,
Enabled: False,
TemplateFrom: String,
UnitOne: String,
UnitMany: String,
FacilityNoun: String,
UnitOneEs: String,
UnitManyEs: String,
FacilityNounEs: String,
TagMode: String,
TagFormats:
[
String
],
Pay:
{
WorkerClass: String,
PerPickup: 0,
PerStop: 0,
PerMissed: 0,
PerCancel: 0,
WaitAfterMin: 0,
WaitPerMin: 0,
MileageOn: False,
PerMile: 0,
MinPerJob: 0,
TipsPct: 0
},
Dispatch:
{
PingSecs: 0,
RadiusMi: 0,
DeclinePenalty: False,
NextRule: String,
GoMin: 0,
LastMin: 0,
NearFull: 0,
MarginMin: 0,
TrafficSource: String
},
Missed:
{
WaitMin: 0,
Fee: 0,
CancelFee: 0,
AutoRebook: False,
RequireContact: False,
RequirePhoto: False
},
Privacy:
{
ThreadHrs: 0,
PhotoDays: 0,
LockNames: String,
HideAddr: False,
LiveEta: False,
Tipping: False
},
Pricing:
{
Base: 0,
PerUnit: 0,
PerMile: 0,
MinOrder: 0,
TaxPct: 0,
FinalAfterCount: False,
ServiceArea:
[
String
],
WindowMin: 0,
Surcharges:
{
String: 0
}
},
Booking:
{
On: False,
Slug: String,
Asap: False,
MinLeadMin: 0,
Open: String,
Close: String,
DriveBufferMin: 0,
Zips:
[
String
],
Recurring: False,
PayTiming: String
},
Facilities:
[
{
Code: String,
Name: String,
Address: String,
IntakeMin: 0,
Levels:
[
{
Code: String,
Name: String,
InBy: String,
WithinMin: 0,
Ready: String,
Days:
[
0
],
IsOn: False
}
],
Holidays:
[
String
]
}
],
Vehicles:
[
{
EquipmentID: 0,
UnitNumber: String,
Name: String,
Unit: String,
Cap: 0,
Cold: False
}
],
Proof:
{
String:
{
String: String
}
},
Context:
{
Drivers: 0,
ProfileCount: 0,
PayPlanId: 0,
ZoneMode: String,
ZoneName: String,
ZoneCount: 0,
HasBookingPage: False,
HasRateConfig: False,
VehicleFacts:
{
String: String
}
}
},
Issues:
[
{
Key: String,
Section: String,
Message: String
}
],
Changes:
[
{
Key: String,
Section: String,
Label: String,
From: String,
To: String
}
],
Preview:
{
DeadlineTitle: String,
DeadlineLead: String,
RoomW: String,
LastW: String,
GoW: String,
Zones:
[
{
K: String,
V: String,
Dot: String
}
],
PaySub: String,
PayRows:
[
{
K: String,
V: String,
Dot: String
}
],
PayTotal: String,
ProofRows:
[
{
K: String,
V: String,
Dot: String
}
],
Ping: String
},
Fleet:
[
{
EquipmentID: 0,
UnitNumber: String,
Name: String,
VehicleType: String,
Unit: String,
Cap: 0,
Cold: False,
Status: String,
Assigned: False
}
],
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
}
}