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
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using CRM.AgencyPlatform.API.Internal;

namespace CRM.AgencyPlatform.API.Internal
{
    public partial class CourierBooking
    {
        public virtual bool On { get; set; }
        public virtual string Slug { get; set; }
        public virtual bool Asap { get; set; }
        public virtual int MinLeadMin { get; set; }
        public virtual string Open { get; set; }
        public virtual string Close { get; set; }
        public virtual int DriveBufferMin { get; set; }
        public virtual List<string> Zips { get; set; } = [];
        public virtual bool Recurring { get; set; }
        public virtual string PayTiming { get; set; }
    }

    public partial class CourierChange
    {
        public virtual string Key { get; set; }
        public virtual string Section { get; set; }
        public virtual string Label { get; set; }
        public virtual string From { get; set; }
        public virtual string To { get; set; }
    }

    public partial class CourierDispatch
    {
        public virtual int PingSecs { get; set; }
        public virtual decimal RadiusMi { get; set; }
        public virtual bool DeclinePenalty { get; set; }
        public virtual string NextRule { get; set; }
        public virtual int GoMin { get; set; }
        public virtual int LastMin { get; set; }
        public virtual int NearFull { get; set; }
        public virtual int MarginMin { get; set; }
        public virtual string TrafficSource { get; set; }
    }

    public partial class CourierFacilityView
    {
        public virtual string Code { get; set; }
        public virtual string Name { get; set; }
        public virtual string Address { get; set; }
        public virtual int IntakeMin { get; set; }
        public virtual List<CourierLevelView> Levels { get; set; } = [];
        public virtual List<string> Holidays { get; set; } = [];
    }

    public partial class CourierFleetVehicle
    {
        public virtual int EquipmentID { get; set; }
        public virtual string UnitNumber { get; set; }
        public virtual string Name { get; set; }
        public virtual string VehicleType { get; set; }
        public virtual string Unit { get; set; }
        public virtual decimal? Cap { get; set; }
        public virtual bool Cold { get; set; }
        public virtual string Status { get; set; }
        public virtual bool Assigned { get; set; }
    }

    public partial class CourierIssue
    {
        public virtual string Key { get; set; }
        public virtual string Section { get; set; }
        public virtual string Message { get; set; }
    }

    public partial class CourierLevelView
    {
        public virtual string Code { get; set; }
        public virtual string Name { get; set; }
        public virtual string InBy { get; set; }
        public virtual int WithinMin { get; set; }
        public virtual string Ready { get; set; }
        public virtual List<int> Days { get; set; } = [];
        public virtual bool IsOn { get; set; }
    }

    public partial class CourierMissed
    {
        public virtual int WaitMin { get; set; }
        public virtual decimal Fee { get; set; }
        public virtual decimal CancelFee { get; set; }
        public virtual bool AutoRebook { get; set; }
        public virtual bool RequireContact { get; set; }
        public virtual bool RequirePhoto { get; set; }
    }

    public partial class CourierPay
    {
        public virtual string WorkerClass { get; set; }
        public virtual decimal PerPickup { get; set; }
        public virtual decimal PerStop { get; set; }
        public virtual decimal PerMissed { get; set; }
        public virtual decimal PerCancel { get; set; }
        public virtual int WaitAfterMin { get; set; }
        public virtual decimal WaitPerMin { get; set; }
        public virtual bool MileageOn { get; set; }
        public virtual decimal PerMile { get; set; }
        public virtual decimal MinPerJob { get; set; }
        public virtual decimal TipsPct { get; set; }
    }

    public partial class CourierPreview
    {
        public virtual string DeadlineTitle { get; set; }
        public virtual string DeadlineLead { get; set; }
        public virtual string RoomW { get; set; }
        public virtual string LastW { get; set; }
        public virtual string GoW { get; set; }
        public virtual List<CourierPreviewLine> Zones { get; set; } = [];
        public virtual string PaySub { get; set; }
        public virtual List<CourierPreviewLine> PayRows { get; set; } = [];
        public virtual string PayTotal { get; set; }
        public virtual List<CourierPreviewLine> ProofRows { get; set; } = [];
        public virtual string Ping { get; set; }
    }

    public partial class CourierPreviewLine
    {
        public virtual string K { get; set; }
        public virtual string V { get; set; }
        public virtual string Dot { get; set; }
    }

    public partial class CourierPricing
    {
        public virtual decimal Base { get; set; }
        public virtual decimal PerUnit { get; set; }
        public virtual decimal PerMile { get; set; }
        public virtual decimal MinOrder { get; set; }
        public virtual decimal TaxPct { get; set; }
        public virtual bool FinalAfterCount { get; set; }
        public virtual List<string> ServiceArea { get; set; } = [];
        public virtual int WindowMin { get; set; }
        public virtual Dictionary<string, decimal> Surcharges { get; set; } = new();
    }

    public partial class CourierPrivacy
    {
        public virtual int ThreadHrs { get; set; }
        public virtual int PhotoDays { get; set; }
        public virtual string LockNames { get; set; }
        public virtual bool HideAddr { get; set; }
        public virtual bool LiveEta { get; set; }
        public virtual bool Tipping { get; set; }
    }

    public partial class CourierProfileContext
    {
        public virtual int Drivers { get; set; }
        public virtual int ProfileCount { get; set; }
        public virtual int? PayPlanId { get; set; }
        public virtual string ZoneMode { get; set; }
        public virtual string ZoneName { get; set; }
        public virtual int ZoneCount { get; set; }
        public virtual bool HasBookingPage { get; set; }
        public virtual bool HasRateConfig { get; set; }
        public virtual Dictionary<string, string> VehicleFacts { get; set; } = new();
    }

    public partial class CourierProfilePreviewRequest
    {
        public virtual int Id { get; set; }
        public virtual CourierProfileView Draft { get; set; }
        public virtual string FacilityCode { get; set; }
    }

    public partial class CourierProfileSummary
    {
        public virtual int CourierProfileID { get; set; }
        public virtual string Code { get; set; }
        public virtual string Name { get; set; }
        public virtual string BusinessName { get; set; }
        public virtual string RouteShape { get; set; }
        public virtual bool Enabled { get; set; }
        public virtual string TemplateFrom { get; set; }
        public virtual int Drivers { get; set; }
    }

    public partial class CourierProfileView
    {
        public virtual int CourierProfileID { get; set; }
        public virtual string Code { get; set; }
        public virtual string Name { get; set; }
        public virtual string BusinessName { get; set; }
        public virtual string RouteShape { get; set; }
        public virtual bool Enabled { get; set; }
        public virtual string TemplateFrom { get; set; }
        public virtual string UnitOne { get; set; }
        public virtual string UnitMany { get; set; }
        public virtual string FacilityNoun { get; set; }
        public virtual string UnitOneEs { get; set; }
        public virtual string UnitManyEs { get; set; }
        public virtual string FacilityNounEs { get; set; }
        public virtual string TagMode { get; set; }
        public virtual List<string> TagFormats { get; set; } = [];
        public virtual CourierPay Pay { get; set; }
        public virtual CourierDispatch Dispatch { get; set; }
        public virtual CourierMissed Missed { get; set; }
        public virtual CourierPrivacy Privacy { get; set; }
        public virtual CourierPricing Pricing { get; set; }
        public virtual CourierBooking Booking { get; set; }
        public virtual List<CourierFacilityView> Facilities { get; set; } = [];
        public virtual List<CourierVehicleView> Vehicles { get; set; } = [];
        public virtual Dictionary<string, Dictionary<String,String>> Proof { get; set; } = new();
        public virtual CourierProfileContext Context { get; set; }
    }

    public partial class CourierResponse
    {
        public virtual List<CourierProfileSummary> Profiles { get; set; } = [];
        public virtual List<CourierTemplateOption> Templates { get; set; } = [];
        public virtual CourierProfileView Profile { get; set; }
        public virtual List<CourierIssue> Issues { get; set; } = [];
        public virtual List<CourierChange> Changes { get; set; } = [];
        public virtual CourierPreview Preview { get; set; }
        public virtual List<CourierFleetVehicle> Fleet { get; set; } = [];
        public virtual ResponseStatus ResponseStatus { get; set; }
    }

    public partial class CourierTemplateOption
    {
        public virtual string Key { get; set; }
        public virtual string Label { get; set; }
        public virtual string Detail { get; set; }
        public virtual string RouteShape { get; set; }
    }

    public partial class CourierVehicleView
    {
        public virtual int EquipmentID { get; set; }
        public virtual string UnitNumber { get; set; }
        public virtual string Name { get; set; }
        public virtual string Unit { get; set; }
        public virtual decimal Cap { get; set; }
        public virtual bool Cold { get; set; }
    }

}

C# 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
		}
	}
}