Trendsic Platform Service

<back to all web services

DispatchOdOfferRequest

Requires Authentication
The following routes are available for this service:
POST,OPTIONS/v1/dispatch/ondemand/{Code}/offer
import Foundation
import ServiceStack

public class DispatchOdOfferRequest : Codable
{
    public var code:String
    public var driverCode:String
    public var triedCodes:String
    public var expiresMin:Int?
    public var noDriver:String
    public var atMin:Int
    public var note:String

    required public init(){}
}

public class DispatchActionResponse : Codable
{
    public var board:DispatchBoardView
    public var message:String
    public var sent:Int
    public var failed:Int
    public var ticketCode:String
    public var ticketNet:Double
    public var responseStatus:ResponseStatus

    required public init(){}
}

public class DispatchBoardView : Codable
{
    public var pack:DispatchPackConfigView
    public var config:DispatchHaulConfigView
    public var offlineWindows:[DispatchOfflineWindowView] = []
    public var suppliers:[DispatchSupplierView] = []
    public var trucks:[DispatchTruckView] = []
    public var slots:[DispatchSlotView] = []
    public var tickets:[DispatchTicketView] = []
    public var log:[DispatchLogView] = []
    public var autopilot:DispatchAutopilotView
    public var exceptions:[DispatchExceptionView] = []
    public var feed:[DispatchFeedView] = []
    public var rigs:[DispatchRigView] = []
    public var jobs:[DispatchJobView] = []
    public var odDrivers:[DispatchOdDriverView] = []
    public var odRequests:[DispatchOdRequestView] = []
    public var packs:[DispatchPackView] = []
    public var packTerms:[DispatchPackTermView] = []
    public var packUnits:[DispatchPackUnitView] = []

    required public init(){}
}

public class DispatchPackConfigView : Codable
{
    public var packId:String
    public var hasQuotas:Bool
    public var isInverted:Bool
    public var loadLimitMins:Int
    public var ticketSource:String
    public var payBasis:String
    public var dayBoundary:String

    required public init(){}
}

public class DispatchHaulConfigView : Codable
{
    public var queueMax:Int
    public var dumpBays:Int
    public var slotCap:Int
    public var paused:Bool
    public var feedRate:Int

    required public init(){}
}

public class DispatchOfflineWindowView : Codable
{
    public var offlineWindowId:Int
    public var fromHour:String
    public var toHour:String

    required public init(){}
}

public class DispatchSupplierView : Codable
{
    public var supplierId:Int
    public var code:String
    public var name:String
    public var region:String
    public var ownHauler:Bool
    public var seasonAllotment:Double
    public var delivered:Double
    public var weekCap:Double
    public var weekDelivered:Double
    public var sortOrder:Int
    public var sites:[DispatchSiteView] = []

    required public init(){}
}

public class DispatchSiteView : Codable
{
    public var siteId:Int
    public var supplierId:Int
    public var supplierCode:String
    public var name:String
    public var acres:Int
    public var standingVolume:Double
    public var sortOrder:Int

    required public init(){}
}

public class DispatchTruckView : Codable
{
    public var truckId:Int
    public var code:String
    public var driverName:String
    public var phone:String
    public var employerCode:String
    public var supplierCode:String
    public var siteName:String
    public var estLoad:Double
    public var stage:String
    public var stageSince:Int
    public var cycleStart:Int?
    public var stageMinsAgo:Int
    public var cycleMinsAgo:Int?
    public var slot:String
    public var loadsToday:Int
    public var netToday:Double
    public var lastPingMins:Int
    public var cycleMins:String
    public var isInteractive:Bool
    public var nextSupplierCode:String
    public var nextSiteName:String

    required public init(){}
}

public class DispatchSlotView : Codable
{
    public var slotId:Int
    public var hour:String
    public var baseBooked:Int
    public var sortOrder:Int

    required public init(){}
}

public class DispatchTicketView : Codable
{
    public var ticketId:Int
    public var code:String
    public var truckCode:String
    public var supplierCode:String
    public var netQty:Double
    public var ticketedAt:Date
    public var ticketedMin:Int
    public var source:String
    public var minsAgo:Int

    required public init(){}
}

public class DispatchLogView : Codable
{
    public var logId:Int
    public var loggedAt:Date
    public var loggedMin:Int
    public var logText:String
    public var kind:String
    public var minsAgo:Int

    required public init(){}
}

public class DispatchAutopilotView : Codable
{
    public var isOn:Bool
    public var ruleSlot:Bool
    public var ruleRoute:Bool
    public var ruleRelease:Bool
    public var ruleTract:Bool
    public var ruleThrottle:Bool
    public var ruleOffline:Bool
    public var thStaged:Int
    public var thWait:Int
    public var thBand:Int
    public var thStall:Int
    public var thFeed:Int

    required public init(){}
}

public class DispatchExceptionView : Codable
{
    public var code:String
    public var kind:String
    public var severity:String
    public var truckCode:String
    public var supplierCode:String
    public var raisedAt:Date
    public var raisedLabel:String
    public var minsAgo:Int

    required public init(){}
}

public class DispatchFeedView : Codable
{
    public var feedId:Int
    public var entryAt:Date
    public var entryLabel:String
    public var channel:String
    public var kind:String
    public var truckCode:String
    public var supplierCode:String
    public var overrideText:String
    public var minsAgo:Int

    required public init(){}
}

public class DispatchRigView : Codable
{
    public var rigId:Int
    public var code:String
    public var name:String
    public var driverName:String
    public var phone:String
    public var rigType:String
    public var isFree:Bool
    public var matchRank:Int

    required public init(){}
}

public class DispatchJobView : Codable
{
    public var jobId:Int
    public var code:String
    public var cargo:String
    public var customer:String
    public var customerPhone:String
    public var holdContact:String
    public var holdPhone:String
    public var fromLoc:String
    public var toLoc:String
    public var miles:Int
    public var windowText:String
    public var stage:String
    public var rate:Double?
    public var requiredRig:String
    public var driverLabel:String
    public var etaText:String
    public var offerRigIds:String
    public var offerExpiresMin:Int?
    public var offerExpired:Bool
    public var declined:Bool

    required public init(){}
}

public class DispatchOdDriverView : Codable
{
    public var driverId:Int
    public var code:String
    public var name:String
    public var zone:String
    public var phone:String
    public var status:String
    public var tier:String
    public var distanceMi:Double
    public var capabilities:String

    required public init(){}
}

public class DispatchOdRequestView : Codable
{
    public var requestId:Int
    public var code:String
    public var address:String
    public var zone:String
    public var bags:Int
    public var stage:String
    public var driverCode:String
    public var needs:String
    public var note:String
    public var pingExpiresMin:Int?
    public var triedCodes:String
    public var candidateCodes:String
    public var etaText:String
    public var noDriver:String

    required public init(){}
}

public class DispatchPackView : Codable
{
    public var packId:String
    public var hasQuotas:Bool
    public var isInverted:Bool
    public var loadLimitMins:Int
    public var dayBoundary:String
    public var ticketSource:String
    public var payBasis:String
    public var sortOrder:Int

    required public init(){}
}

public class DispatchPackTermView : Codable
{
    public var packId:String
    public var lang:String
    public var modeName:String
    public var facility:String
    public var facilityShort:String
    public var sourceSite:String
    public var supplier:String
    public var supplierPlural:String
    public var unloadVerb:String
    public var ticketNoun:String
    public var dayNoun:String
    public var fleetLabel:String
    public var pageSubtitle:String
    public var seasonChip:String
    public var campaignNoun:String
    public var bayNoun:String
    public var assignTarget:String

    required public init(){}
}

public class DispatchPackUnitView : Codable
{
    public var packId:String
    public var unit:String
    public var loadQty:Double
    public var volumeLow:Int
    public var volumeHigh:Int
    public var seasonMultiple:Double
    public var weeklyFraction:Double

    required public init(){}
}


Swift DispatchOdOfferRequest 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/ondemand/{Code}/offer HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Code: String,
	DriverCode: String,
	TriedCodes: String,
	ExpiresMin: 0,
	NoDriver: String,
	AtMin: 0,
	Note: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Board: 
	{
		Pack: 
		{
			PackId: String,
			HasQuotas: False,
			IsInverted: False,
			LoadLimitMins: 0,
			TicketSource: String,
			PayBasis: String,
			DayBoundary: String
		},
		Config: 
		{
			QueueMax: 0,
			DumpBays: 0,
			SlotCap: 0,
			Paused: False,
			FeedRate: 0
		},
		OfflineWindows: 
		[
			{
				OfflineWindowId: 0,
				FromHour: String,
				ToHour: String
			}
		],
		Suppliers: 
		[
			{
				SupplierId: 0,
				Code: String,
				Name: String,
				Region: String,
				OwnHauler: False,
				SeasonAllotment: 0,
				Delivered: 0,
				WeekCap: 0,
				WeekDelivered: 0,
				SortOrder: 0,
				Sites: 
				[
					{
						SiteId: 0,
						SupplierId: 0,
						SupplierCode: String,
						Name: String,
						Acres: 0,
						StandingVolume: 0,
						SortOrder: 0
					}
				]
			}
		],
		Trucks: 
		[
			{
				TruckId: 0,
				Code: String,
				DriverName: String,
				Phone: String,
				EmployerCode: String,
				SupplierCode: String,
				SiteName: String,
				EstLoad: 0,
				Stage: String,
				StageSince: 0,
				CycleStart: 0,
				StageMinsAgo: 0,
				CycleMinsAgo: 0,
				Slot: String,
				LoadsToday: 0,
				NetToday: 0,
				LastPingMins: 0,
				CycleMins: String,
				IsInteractive: False,
				NextSupplierCode: String,
				NextSiteName: String
			}
		],
		Slots: 
		[
			{
				SlotId: 0,
				Hour: String,
				BaseBooked: 0,
				SortOrder: 0
			}
		],
		Tickets: 
		[
			{
				TicketId: 0,
				Code: String,
				TruckCode: String,
				SupplierCode: String,
				NetQty: 0,
				TicketedAt: 0001-01-01,
				TicketedMin: 0,
				Source: String,
				MinsAgo: 0
			}
		],
		Log: 
		[
			{
				LogId: 0,
				LoggedAt: 0001-01-01,
				LoggedMin: 0,
				LogText: String,
				Kind: String,
				MinsAgo: 0
			}
		],
		Autopilot: 
		{
			IsOn: False,
			RuleSlot: False,
			RuleRoute: False,
			RuleRelease: False,
			RuleTract: False,
			RuleThrottle: False,
			RuleOffline: False,
			ThStaged: 0,
			ThWait: 0,
			ThBand: 0,
			ThStall: 0,
			ThFeed: 0
		},
		Exceptions: 
		[
			{
				Code: String,
				Kind: String,
				Severity: String,
				TruckCode: String,
				SupplierCode: String,
				RaisedAt: 0001-01-01,
				RaisedLabel: String,
				MinsAgo: 0
			}
		],
		Feed: 
		[
			{
				FeedId: 0,
				EntryAt: 0001-01-01,
				EntryLabel: String,
				Channel: String,
				Kind: String,
				TruckCode: String,
				SupplierCode: String,
				OverrideText: String,
				MinsAgo: 0
			}
		],
		Rigs: 
		[
			{
				RigId: 0,
				Code: String,
				Name: String,
				DriverName: String,
				Phone: String,
				RigType: String,
				IsFree: False,
				MatchRank: 0
			}
		],
		Jobs: 
		[
			{
				JobId: 0,
				Code: String,
				Cargo: String,
				Customer: String,
				CustomerPhone: String,
				HoldContact: String,
				HoldPhone: String,
				FromLoc: String,
				ToLoc: String,
				Miles: 0,
				WindowText: String,
				Stage: String,
				Rate: 0,
				RequiredRig: String,
				DriverLabel: String,
				EtaText: String,
				OfferRigIds: String,
				OfferExpiresMin: 0,
				OfferExpired: False,
				Declined: False
			}
		],
		OdDrivers: 
		[
			{
				DriverId: 0,
				Code: String,
				Name: String,
				Zone: String,
				Phone: String,
				Status: String,
				Tier: String,
				DistanceMi: 0,
				Capabilities: String
			}
		],
		OdRequests: 
		[
			{
				RequestId: 0,
				Code: String,
				Address: String,
				Zone: String,
				Bags: 0,
				Stage: String,
				DriverCode: String,
				Needs: String,
				Note: String,
				PingExpiresMin: 0,
				TriedCodes: String,
				CandidateCodes: String,
				EtaText: String,
				NoDriver: String
			}
		],
		Packs: 
		[
			{
				PackId: String,
				HasQuotas: False,
				IsInverted: False,
				LoadLimitMins: 0,
				DayBoundary: String,
				TicketSource: String,
				PayBasis: String,
				SortOrder: 0
			}
		],
		PackTerms: 
		[
			{
				PackId: String,
				Lang: String,
				ModeName: String,
				Facility: String,
				FacilityShort: String,
				SourceSite: String,
				Supplier: String,
				SupplierPlural: String,
				UnloadVerb: String,
				TicketNoun: String,
				DayNoun: String,
				FleetLabel: String,
				PageSubtitle: String,
				SeasonChip: String,
				CampaignNoun: String,
				BayNoun: String,
				AssignTarget: String
			}
		],
		PackUnits: 
		[
			{
				PackId: String,
				Unit: String,
				LoadQty: 0,
				VolumeLow: 0,
				VolumeHigh: 0,
				SeasonMultiple: 0,
				WeeklyFraction: 0
			}
		]
	},
	Message: String,
	Sent: 0,
	Failed: 0,
	TicketCode: String,
	TicketNet: 0,
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}