Trendsic Platform Service

<back to all web services

CourierProfilePreviewRequest

Requires Authentication
The following routes are available for this service:
POST,OPTIONS/v1/dispatch/courier/profiles/{Id}/preview
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*


open class CourierProfilePreviewRequest
{
    open var Id:Int? = null
    open var Draft:CourierProfileView? = null
    open var FacilityCode:String? = null
}

open class CourierProfileView
{
    open var CourierProfileID:Int? = null
    open var Code:String? = null
    open var Name:String? = null
    open var BusinessName:String? = null
    open var RouteShape:String? = null
    open var Enabled:Boolean? = null
    open var TemplateFrom:String? = null
    open var UnitOne:String? = null
    open var UnitMany:String? = null
    open var FacilityNoun:String? = null
    open var UnitOneEs:String? = null
    open var UnitManyEs:String? = null
    open var FacilityNounEs:String? = null
    open var TagMode:String? = null
    open var TagFormats:ArrayList<String> = ArrayList<String>()
    open var Pay:CourierPay? = null
    open var Dispatch:CourierDispatch? = null
    open var Missed:CourierMissed? = null
    open var Privacy:CourierPrivacy? = null
    open var Pricing:CourierPricing? = null
    open var Booking:CourierBooking? = null
    open var Facilities:ArrayList<CourierFacilityView> = ArrayList<CourierFacilityView>()
    open var Vehicles:ArrayList<CourierVehicleView> = ArrayList<CourierVehicleView>()
    open var Proof:HashMap<String,HashMap<String,String>> = HashMap<String,HashMap<String,String>>()
    open var Context:CourierProfileContext? = null
}

open class CourierPay
{
    open var WorkerClass:String? = null
    open var PerPickup:BigDecimal? = null
    open var PerStop:BigDecimal? = null
    open var PerMissed:BigDecimal? = null
    open var PerCancel:BigDecimal? = null
    open var WaitAfterMin:Int? = null
    open var WaitPerMin:BigDecimal? = null
    open var MileageOn:Boolean? = null
    open var PerMile:BigDecimal? = null
    open var MinPerJob:BigDecimal? = null
    open var TipsPct:BigDecimal? = null
}

open class CourierDispatch
{
    open var PingSecs:Int? = null
    open var RadiusMi:BigDecimal? = null
    open var DeclinePenalty:Boolean? = null
    open var NextRule:String? = null
    open var GoMin:Int? = null
    open var LastMin:Int? = null
    open var NearFull:Int? = null
    open var MarginMin:Int? = null
    open var TrafficSource:String? = null
}

open class CourierMissed
{
    open var WaitMin:Int? = null
    open var Fee:BigDecimal? = null
    open var CancelFee:BigDecimal? = null
    open var AutoRebook:Boolean? = null
    open var RequireContact:Boolean? = null
    open var RequirePhoto:Boolean? = null
}

open class CourierPrivacy
{
    open var ThreadHrs:Int? = null
    open var PhotoDays:Int? = null
    open var LockNames:String? = null
    open var HideAddr:Boolean? = null
    open var LiveEta:Boolean? = null
    open var Tipping:Boolean? = null
}

open class CourierPricing
{
    open var Base:BigDecimal? = null
    open var PerUnit:BigDecimal? = null
    open var PerMile:BigDecimal? = null
    open var MinOrder:BigDecimal? = null
    open var TaxPct:BigDecimal? = null
    open var FinalAfterCount:Boolean? = null
    open var ServiceArea:ArrayList<String> = ArrayList<String>()
    open var WindowMin:Int? = null
    open var Surcharges:HashMap<String,BigDecimal> = HashMap<String,BigDecimal>()
}

open class CourierBooking
{
    open var On:Boolean? = null
    open var Slug:String? = null
    open var Asap:Boolean? = null
    open var MinLeadMin:Int? = null
    open var Open:String? = null
    open var Close:String? = null
    open var DriveBufferMin:Int? = null
    open var Zips:ArrayList<String> = ArrayList<String>()
    open var Recurring:Boolean? = null
    open var PayTiming:String? = null
}

open class CourierFacilityView
{
    open var Code:String? = null
    open var Name:String? = null
    open var Address:String? = null
    open var IntakeMin:Int? = null
    open var Levels:ArrayList<CourierLevelView> = ArrayList<CourierLevelView>()
    open var Holidays:ArrayList<String> = ArrayList<String>()
}

open class CourierLevelView
{
    open var Code:String? = null
    open var Name:String? = null
    open var InBy:String? = null
    open var WithinMin:Int? = null
    open var Ready:String? = null
    open var Days:ArrayList<Int> = ArrayList<Int>()
    open var IsOn:Boolean? = null
}

open class CourierVehicleView
{
    open var EquipmentID:Int? = null
    open var UnitNumber:String? = null
    open var Name:String? = null
    open var Unit:String? = null
    open var Cap:BigDecimal? = null
    open var Cold:Boolean? = null
}

open class CourierProfileContext
{
    open var Drivers:Int? = null
    open var ProfileCount:Int? = null
    open var PayPlanId:Int? = null
    open var ZoneMode:String? = null
    open var ZoneName:String? = null
    open var ZoneCount:Int? = null
    open var HasBookingPage:Boolean? = null
    open var HasRateConfig:Boolean? = null
    open var VehicleFacts:HashMap<String,String> = HashMap<String,String>()
}

open class CourierResponse
{
    open var Profiles:ArrayList<CourierProfileSummary> = ArrayList<CourierProfileSummary>()
    open var Templates:ArrayList<CourierTemplateOption> = ArrayList<CourierTemplateOption>()
    open var Profile:CourierProfileView? = null
    open var Issues:ArrayList<CourierIssue> = ArrayList<CourierIssue>()
    open var Changes:ArrayList<CourierChange> = ArrayList<CourierChange>()
    open var Preview:CourierPreview? = null
    open var Fleet:ArrayList<CourierFleetVehicle> = ArrayList<CourierFleetVehicle>()
    open var ResponseStatus:ResponseStatus? = null
}

open class CourierProfileSummary
{
    open var CourierProfileID:Int? = null
    open var Code:String? = null
    open var Name:String? = null
    open var BusinessName:String? = null
    open var RouteShape:String? = null
    open var Enabled:Boolean? = null
    open var TemplateFrom:String? = null
    open var Drivers:Int? = null
}

open class CourierTemplateOption
{
    open var Key:String? = null
    open var Label:String? = null
    open var Detail:String? = null
    open var RouteShape:String? = null
}

open class CourierIssue
{
    open var Key:String? = null
    open var Section:String? = null
    open var Message:String? = null
}

open class CourierChange
{
    open var Key:String? = null
    open var Section:String? = null
    open var Label:String? = null
    open var From:String? = null
    open var To:String? = null
}

open class CourierPreview
{
    open var DeadlineTitle:String? = null
    open var DeadlineLead:String? = null
    open var RoomW:String? = null
    open var LastW:String? = null
    open var GoW:String? = null
    open var Zones:ArrayList<CourierPreviewLine> = ArrayList<CourierPreviewLine>()
    open var PaySub:String? = null
    open var PayRows:ArrayList<CourierPreviewLine> = ArrayList<CourierPreviewLine>()
    open var PayTotal:String? = null
    open var ProofRows:ArrayList<CourierPreviewLine> = ArrayList<CourierPreviewLine>()
    open var Ping:String? = null
}

open class CourierPreviewLine
{
    open var K:String? = null
    open var V:String? = null
    open var Dot:String? = null
}

open class CourierFleetVehicle
{
    open var EquipmentID:Int? = null
    open var UnitNumber:String? = null
    open var Name:String? = null
    open var VehicleType:String? = null
    open var Unit:String? = null
    open var Cap:BigDecimal? = null
    open var Cold:Boolean? = null
    open var Status:String? = null
    open var Assigned:Boolean? = null
}

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

POST /v1/dispatch/courier/profiles/{Id}/preview HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Id: 0,
	Draft: 
	{
		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
			}
		}
	},
	FacilityCode: String
}
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
		}
	}
}