Trendsic Platform Service

<back to all web services

CourierProfileRequest

Requires Authentication
The following routes are available for this service:
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

HTTP + 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
		}
	}
}