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}

export class CourierProfileSummary
{
    public CourierProfileID: number;
    public Code: string;
    public Name: string;
    public BusinessName: string;
    public RouteShape: string;
    public Enabled: boolean;
    public TemplateFrom: string;
    public Drivers: number;

    public constructor(init?: Partial<CourierProfileSummary>) { (Object as any).assign(this, init); }
}

export class CourierTemplateOption
{
    public Key: string;
    public Label: string;
    public Detail: string;
    public RouteShape: string;

    public constructor(init?: Partial<CourierTemplateOption>) { (Object as any).assign(this, init); }
}

export class CourierPay
{
    public WorkerClass: string;
    public PerPickup: number;
    public PerStop: number;
    public PerMissed: number;
    public PerCancel: number;
    public WaitAfterMin: number;
    public WaitPerMin: number;
    public MileageOn: boolean;
    public PerMile: number;
    public MinPerJob: number;
    public TipsPct: number;

    public constructor(init?: Partial<CourierPay>) { (Object as any).assign(this, init); }
}

export class CourierDispatch
{
    public PingSecs: number;
    public RadiusMi: number;
    public DeclinePenalty: boolean;
    public NextRule: string;
    public GoMin: number;
    public LastMin: number;
    public NearFull: number;
    public MarginMin: number;
    public TrafficSource: string;

    public constructor(init?: Partial<CourierDispatch>) { (Object as any).assign(this, init); }
}

export class CourierMissed
{
    public WaitMin: number;
    public Fee: number;
    public CancelFee: number;
    public AutoRebook: boolean;
    public RequireContact: boolean;
    public RequirePhoto: boolean;

    public constructor(init?: Partial<CourierMissed>) { (Object as any).assign(this, init); }
}

export class CourierPrivacy
{
    public ThreadHrs: number;
    public PhotoDays: number;
    public LockNames: string;
    public HideAddr: boolean;
    public LiveEta: boolean;
    public Tipping: boolean;

    public constructor(init?: Partial<CourierPrivacy>) { (Object as any).assign(this, init); }
}

export class CourierPricing
{
    public Base: number;
    public PerUnit: number;
    public PerMile: number;
    public MinOrder: number;
    public TaxPct: number;
    public FinalAfterCount: boolean;
    public ServiceArea: string[] = [];
    public WindowMin: number;
    public Surcharges: { [index:string]: number; } = {};

    public constructor(init?: Partial<CourierPricing>) { (Object as any).assign(this, init); }
}

export class CourierBooking
{
    public On: boolean;
    public Slug: string;
    public Asap: boolean;
    public MinLeadMin: number;
    public Open: string;
    public Close: string;
    public DriveBufferMin: number;
    public Zips: string[] = [];
    public Recurring: boolean;
    public PayTiming: string;

    public constructor(init?: Partial<CourierBooking>) { (Object as any).assign(this, init); }
}

export class CourierLevelView
{
    public Code: string;
    public Name: string;
    public InBy: string;
    public WithinMin: number;
    public Ready: string;
    public Days: number[] = [];
    public IsOn: boolean;

    public constructor(init?: Partial<CourierLevelView>) { (Object as any).assign(this, init); }
}

export class CourierFacilityView
{
    public Code: string;
    public Name: string;
    public Address: string;
    public IntakeMin: number;
    public Levels: CourierLevelView[] = [];
    public Holidays: string[] = [];

    public constructor(init?: Partial<CourierFacilityView>) { (Object as any).assign(this, init); }
}

export class CourierVehicleView
{
    public EquipmentID: number;
    public UnitNumber: string;
    public Name: string;
    public Unit: string;
    public Cap: number;
    public Cold: boolean;

    public constructor(init?: Partial<CourierVehicleView>) { (Object as any).assign(this, init); }
}

export class CourierProfileContext
{
    public Drivers: number;
    public ProfileCount: number;
    public PayPlanId?: number;
    public ZoneMode: string;
    public ZoneName: string;
    public ZoneCount: number;
    public HasBookingPage: boolean;
    public HasRateConfig: boolean;
    public VehicleFacts: { [index:string]: string; } = {};

    public constructor(init?: Partial<CourierProfileContext>) { (Object as any).assign(this, init); }
}

export class CourierProfileView
{
    public CourierProfileID: number;
    public Code: string;
    public Name: string;
    public BusinessName: string;
    public RouteShape: string;
    public Enabled: boolean;
    public TemplateFrom: string;
    public UnitOne: string;
    public UnitMany: string;
    public FacilityNoun: string;
    public UnitOneEs: string;
    public UnitManyEs: string;
    public FacilityNounEs: string;
    public TagMode: string;
    public TagFormats: string[] = [];
    public Pay: CourierPay;
    public Dispatch: CourierDispatch;
    public Missed: CourierMissed;
    public Privacy: CourierPrivacy;
    public Pricing: CourierPricing;
    public Booking: CourierBooking;
    public Facilities: CourierFacilityView[] = [];
    public Vehicles: CourierVehicleView[] = [];
    public Proof: { [index:string]: { [index:string]: string; }; } = {};
    public Context: CourierProfileContext;

    public constructor(init?: Partial<CourierProfileView>) { (Object as any).assign(this, init); }
}

export class CourierIssue
{
    public Key: string;
    public Section: string;
    public Message: string;

    public constructor(init?: Partial<CourierIssue>) { (Object as any).assign(this, init); }
}

export class CourierChange
{
    public Key: string;
    public Section: string;
    public Label: string;
    public From: string;
    public To: string;

    public constructor(init?: Partial<CourierChange>) { (Object as any).assign(this, init); }
}

export class CourierPreviewLine
{
    public K: string;
    public V: string;
    public Dot: string;

    public constructor(init?: Partial<CourierPreviewLine>) { (Object as any).assign(this, init); }
}

export class CourierPreview
{
    public DeadlineTitle: string;
    public DeadlineLead: string;
    public RoomW: string;
    public LastW: string;
    public GoW: string;
    public Zones: CourierPreviewLine[] = [];
    public PaySub: string;
    public PayRows: CourierPreviewLine[] = [];
    public PayTotal: string;
    public ProofRows: CourierPreviewLine[] = [];
    public Ping: string;

    public constructor(init?: Partial<CourierPreview>) { (Object as any).assign(this, init); }
}

export class CourierFleetVehicle
{
    public EquipmentID: number;
    public UnitNumber: string;
    public Name: string;
    public VehicleType: string;
    public Unit: string;
    public Cap?: number;
    public Cold: boolean;
    public Status: string;
    public Assigned: boolean;

    public constructor(init?: Partial<CourierFleetVehicle>) { (Object as any).assign(this, init); }
}

export class CourierResponse
{
    public Profiles: CourierProfileSummary[] = [];
    public Templates: CourierTemplateOption[] = [];
    public Profile: CourierProfileView;
    public Issues: CourierIssue[] = [];
    public Changes: CourierChange[] = [];
    public Preview: CourierPreview;
    public Fleet: CourierFleetVehicle[] = [];
    public ResponseStatus: ResponseStatus;

    public constructor(init?: Partial<CourierResponse>) { (Object as any).assign(this, init); }
}

export class CourierProfileRequest
{
    public Id: number;
    public FacilityCode: string;

    public constructor(init?: Partial<CourierProfileRequest>) { (Object as any).assign(this, init); }
}

TypeScript 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
		}
	}
}