| GET,OPTIONS | /v1/dispatch/courier/profiles/{Id} |
|---|
<?php namespace dtos;
use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};
class CourierProfileSummary implements JsonSerializable
{
public function __construct(
/** @var int */
public int $CourierProfileID=0,
/** @var string|null */
public ?string $Code=null,
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $BusinessName=null,
/** @var string|null */
public ?string $RouteShape=null,
/** @var bool|null */
public ?bool $Enabled=null,
/** @var string|null */
public ?string $TemplateFrom=null,
/** @var int */
public int $Drivers=0
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['CourierProfileID'])) $this->CourierProfileID = $o['CourierProfileID'];
if (isset($o['Code'])) $this->Code = $o['Code'];
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['BusinessName'])) $this->BusinessName = $o['BusinessName'];
if (isset($o['RouteShape'])) $this->RouteShape = $o['RouteShape'];
if (isset($o['Enabled'])) $this->Enabled = $o['Enabled'];
if (isset($o['TemplateFrom'])) $this->TemplateFrom = $o['TemplateFrom'];
if (isset($o['Drivers'])) $this->Drivers = $o['Drivers'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->CourierProfileID)) $o['CourierProfileID'] = $this->CourierProfileID;
if (isset($this->Code)) $o['Code'] = $this->Code;
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->BusinessName)) $o['BusinessName'] = $this->BusinessName;
if (isset($this->RouteShape)) $o['RouteShape'] = $this->RouteShape;
if (isset($this->Enabled)) $o['Enabled'] = $this->Enabled;
if (isset($this->TemplateFrom)) $o['TemplateFrom'] = $this->TemplateFrom;
if (isset($this->Drivers)) $o['Drivers'] = $this->Drivers;
return empty($o) ? new class(){} : $o;
}
}
class CourierTemplateOption implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Key=null,
/** @var string|null */
public ?string $Label=null,
/** @var string|null */
public ?string $Detail=null,
/** @var string|null */
public ?string $RouteShape=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Key'])) $this->Key = $o['Key'];
if (isset($o['Label'])) $this->Label = $o['Label'];
if (isset($o['Detail'])) $this->Detail = $o['Detail'];
if (isset($o['RouteShape'])) $this->RouteShape = $o['RouteShape'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Key)) $o['Key'] = $this->Key;
if (isset($this->Label)) $o['Label'] = $this->Label;
if (isset($this->Detail)) $o['Detail'] = $this->Detail;
if (isset($this->RouteShape)) $o['RouteShape'] = $this->RouteShape;
return empty($o) ? new class(){} : $o;
}
}
class CourierPay implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $WorkerClass=null,
/** @var float */
public float $PerPickup=0.0,
/** @var float */
public float $PerStop=0.0,
/** @var float */
public float $PerMissed=0.0,
/** @var float */
public float $PerCancel=0.0,
/** @var int */
public int $WaitAfterMin=0,
/** @var float */
public float $WaitPerMin=0.0,
/** @var bool|null */
public ?bool $MileageOn=null,
/** @var float */
public float $PerMile=0.0,
/** @var float */
public float $MinPerJob=0.0,
/** @var float */
public float $TipsPct=0.0
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['WorkerClass'])) $this->WorkerClass = $o['WorkerClass'];
if (isset($o['PerPickup'])) $this->PerPickup = $o['PerPickup'];
if (isset($o['PerStop'])) $this->PerStop = $o['PerStop'];
if (isset($o['PerMissed'])) $this->PerMissed = $o['PerMissed'];
if (isset($o['PerCancel'])) $this->PerCancel = $o['PerCancel'];
if (isset($o['WaitAfterMin'])) $this->WaitAfterMin = $o['WaitAfterMin'];
if (isset($o['WaitPerMin'])) $this->WaitPerMin = $o['WaitPerMin'];
if (isset($o['MileageOn'])) $this->MileageOn = $o['MileageOn'];
if (isset($o['PerMile'])) $this->PerMile = $o['PerMile'];
if (isset($o['MinPerJob'])) $this->MinPerJob = $o['MinPerJob'];
if (isset($o['TipsPct'])) $this->TipsPct = $o['TipsPct'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->WorkerClass)) $o['WorkerClass'] = $this->WorkerClass;
if (isset($this->PerPickup)) $o['PerPickup'] = $this->PerPickup;
if (isset($this->PerStop)) $o['PerStop'] = $this->PerStop;
if (isset($this->PerMissed)) $o['PerMissed'] = $this->PerMissed;
if (isset($this->PerCancel)) $o['PerCancel'] = $this->PerCancel;
if (isset($this->WaitAfterMin)) $o['WaitAfterMin'] = $this->WaitAfterMin;
if (isset($this->WaitPerMin)) $o['WaitPerMin'] = $this->WaitPerMin;
if (isset($this->MileageOn)) $o['MileageOn'] = $this->MileageOn;
if (isset($this->PerMile)) $o['PerMile'] = $this->PerMile;
if (isset($this->MinPerJob)) $o['MinPerJob'] = $this->MinPerJob;
if (isset($this->TipsPct)) $o['TipsPct'] = $this->TipsPct;
return empty($o) ? new class(){} : $o;
}
}
class CourierDispatch implements JsonSerializable
{
public function __construct(
/** @var int */
public int $PingSecs=0,
/** @var float */
public float $RadiusMi=0.0,
/** @var bool|null */
public ?bool $DeclinePenalty=null,
/** @var string|null */
public ?string $NextRule=null,
/** @var int */
public int $GoMin=0,
/** @var int */
public int $LastMin=0,
/** @var int */
public int $NearFull=0,
/** @var int */
public int $MarginMin=0,
/** @var string|null */
public ?string $TrafficSource=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['PingSecs'])) $this->PingSecs = $o['PingSecs'];
if (isset($o['RadiusMi'])) $this->RadiusMi = $o['RadiusMi'];
if (isset($o['DeclinePenalty'])) $this->DeclinePenalty = $o['DeclinePenalty'];
if (isset($o['NextRule'])) $this->NextRule = $o['NextRule'];
if (isset($o['GoMin'])) $this->GoMin = $o['GoMin'];
if (isset($o['LastMin'])) $this->LastMin = $o['LastMin'];
if (isset($o['NearFull'])) $this->NearFull = $o['NearFull'];
if (isset($o['MarginMin'])) $this->MarginMin = $o['MarginMin'];
if (isset($o['TrafficSource'])) $this->TrafficSource = $o['TrafficSource'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->PingSecs)) $o['PingSecs'] = $this->PingSecs;
if (isset($this->RadiusMi)) $o['RadiusMi'] = $this->RadiusMi;
if (isset($this->DeclinePenalty)) $o['DeclinePenalty'] = $this->DeclinePenalty;
if (isset($this->NextRule)) $o['NextRule'] = $this->NextRule;
if (isset($this->GoMin)) $o['GoMin'] = $this->GoMin;
if (isset($this->LastMin)) $o['LastMin'] = $this->LastMin;
if (isset($this->NearFull)) $o['NearFull'] = $this->NearFull;
if (isset($this->MarginMin)) $o['MarginMin'] = $this->MarginMin;
if (isset($this->TrafficSource)) $o['TrafficSource'] = $this->TrafficSource;
return empty($o) ? new class(){} : $o;
}
}
class CourierMissed implements JsonSerializable
{
public function __construct(
/** @var int */
public int $WaitMin=0,
/** @var float */
public float $Fee=0.0,
/** @var float */
public float $CancelFee=0.0,
/** @var bool|null */
public ?bool $AutoRebook=null,
/** @var bool|null */
public ?bool $RequireContact=null,
/** @var bool|null */
public ?bool $RequirePhoto=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['WaitMin'])) $this->WaitMin = $o['WaitMin'];
if (isset($o['Fee'])) $this->Fee = $o['Fee'];
if (isset($o['CancelFee'])) $this->CancelFee = $o['CancelFee'];
if (isset($o['AutoRebook'])) $this->AutoRebook = $o['AutoRebook'];
if (isset($o['RequireContact'])) $this->RequireContact = $o['RequireContact'];
if (isset($o['RequirePhoto'])) $this->RequirePhoto = $o['RequirePhoto'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->WaitMin)) $o['WaitMin'] = $this->WaitMin;
if (isset($this->Fee)) $o['Fee'] = $this->Fee;
if (isset($this->CancelFee)) $o['CancelFee'] = $this->CancelFee;
if (isset($this->AutoRebook)) $o['AutoRebook'] = $this->AutoRebook;
if (isset($this->RequireContact)) $o['RequireContact'] = $this->RequireContact;
if (isset($this->RequirePhoto)) $o['RequirePhoto'] = $this->RequirePhoto;
return empty($o) ? new class(){} : $o;
}
}
class CourierPrivacy implements JsonSerializable
{
public function __construct(
/** @var int */
public int $ThreadHrs=0,
/** @var int */
public int $PhotoDays=0,
/** @var string|null */
public ?string $LockNames=null,
/** @var bool|null */
public ?bool $HideAddr=null,
/** @var bool|null */
public ?bool $LiveEta=null,
/** @var bool|null */
public ?bool $Tipping=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ThreadHrs'])) $this->ThreadHrs = $o['ThreadHrs'];
if (isset($o['PhotoDays'])) $this->PhotoDays = $o['PhotoDays'];
if (isset($o['LockNames'])) $this->LockNames = $o['LockNames'];
if (isset($o['HideAddr'])) $this->HideAddr = $o['HideAddr'];
if (isset($o['LiveEta'])) $this->LiveEta = $o['LiveEta'];
if (isset($o['Tipping'])) $this->Tipping = $o['Tipping'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ThreadHrs)) $o['ThreadHrs'] = $this->ThreadHrs;
if (isset($this->PhotoDays)) $o['PhotoDays'] = $this->PhotoDays;
if (isset($this->LockNames)) $o['LockNames'] = $this->LockNames;
if (isset($this->HideAddr)) $o['HideAddr'] = $this->HideAddr;
if (isset($this->LiveEta)) $o['LiveEta'] = $this->LiveEta;
if (isset($this->Tipping)) $o['Tipping'] = $this->Tipping;
return empty($o) ? new class(){} : $o;
}
}
class CourierPricing implements JsonSerializable
{
public function __construct(
/** @var float */
public float $Base=0.0,
/** @var float */
public float $PerUnit=0.0,
/** @var float */
public float $PerMile=0.0,
/** @var float */
public float $MinOrder=0.0,
/** @var float */
public float $TaxPct=0.0,
/** @var bool|null */
public ?bool $FinalAfterCount=null,
/** @var array<string>|null */
public ?array $ServiceArea=null,
/** @var int */
public int $WindowMin=0,
/** @var array<string,float>|null */
public ?array $Surcharges=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Base'])) $this->Base = $o['Base'];
if (isset($o['PerUnit'])) $this->PerUnit = $o['PerUnit'];
if (isset($o['PerMile'])) $this->PerMile = $o['PerMile'];
if (isset($o['MinOrder'])) $this->MinOrder = $o['MinOrder'];
if (isset($o['TaxPct'])) $this->TaxPct = $o['TaxPct'];
if (isset($o['FinalAfterCount'])) $this->FinalAfterCount = $o['FinalAfterCount'];
if (isset($o['ServiceArea'])) $this->ServiceArea = JsonConverters::fromArray('string', $o['ServiceArea']);
if (isset($o['WindowMin'])) $this->WindowMin = $o['WindowMin'];
if (isset($o['Surcharges'])) $this->Surcharges = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','float']), $o['Surcharges']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Base)) $o['Base'] = $this->Base;
if (isset($this->PerUnit)) $o['PerUnit'] = $this->PerUnit;
if (isset($this->PerMile)) $o['PerMile'] = $this->PerMile;
if (isset($this->MinOrder)) $o['MinOrder'] = $this->MinOrder;
if (isset($this->TaxPct)) $o['TaxPct'] = $this->TaxPct;
if (isset($this->FinalAfterCount)) $o['FinalAfterCount'] = $this->FinalAfterCount;
if (isset($this->ServiceArea)) $o['ServiceArea'] = JsonConverters::toArray('string', $this->ServiceArea);
if (isset($this->WindowMin)) $o['WindowMin'] = $this->WindowMin;
if (isset($this->Surcharges)) $o['Surcharges'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','float']), $this->Surcharges);
return empty($o) ? new class(){} : $o;
}
}
class CourierBooking implements JsonSerializable
{
public function __construct(
/** @var bool|null */
public ?bool $On=null,
/** @var string|null */
public ?string $Slug=null,
/** @var bool|null */
public ?bool $Asap=null,
/** @var int */
public int $MinLeadMin=0,
/** @var string|null */
public ?string $Open=null,
/** @var string|null */
public ?string $Close=null,
/** @var int */
public int $DriveBufferMin=0,
/** @var array<string>|null */
public ?array $Zips=null,
/** @var bool|null */
public ?bool $Recurring=null,
/** @var string|null */
public ?string $PayTiming=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['On'])) $this->On = $o['On'];
if (isset($o['Slug'])) $this->Slug = $o['Slug'];
if (isset($o['Asap'])) $this->Asap = $o['Asap'];
if (isset($o['MinLeadMin'])) $this->MinLeadMin = $o['MinLeadMin'];
if (isset($o['Open'])) $this->Open = $o['Open'];
if (isset($o['Close'])) $this->Close = $o['Close'];
if (isset($o['DriveBufferMin'])) $this->DriveBufferMin = $o['DriveBufferMin'];
if (isset($o['Zips'])) $this->Zips = JsonConverters::fromArray('string', $o['Zips']);
if (isset($o['Recurring'])) $this->Recurring = $o['Recurring'];
if (isset($o['PayTiming'])) $this->PayTiming = $o['PayTiming'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->On)) $o['On'] = $this->On;
if (isset($this->Slug)) $o['Slug'] = $this->Slug;
if (isset($this->Asap)) $o['Asap'] = $this->Asap;
if (isset($this->MinLeadMin)) $o['MinLeadMin'] = $this->MinLeadMin;
if (isset($this->Open)) $o['Open'] = $this->Open;
if (isset($this->Close)) $o['Close'] = $this->Close;
if (isset($this->DriveBufferMin)) $o['DriveBufferMin'] = $this->DriveBufferMin;
if (isset($this->Zips)) $o['Zips'] = JsonConverters::toArray('string', $this->Zips);
if (isset($this->Recurring)) $o['Recurring'] = $this->Recurring;
if (isset($this->PayTiming)) $o['PayTiming'] = $this->PayTiming;
return empty($o) ? new class(){} : $o;
}
}
class CourierLevelView implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Code=null,
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $InBy=null,
/** @var int */
public int $WithinMin=0,
/** @var string|null */
public ?string $Ready=null,
/** @var array<int>|null */
public ?array $Days=null,
/** @var bool|null */
public ?bool $IsOn=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Code'])) $this->Code = $o['Code'];
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['InBy'])) $this->InBy = $o['InBy'];
if (isset($o['WithinMin'])) $this->WithinMin = $o['WithinMin'];
if (isset($o['Ready'])) $this->Ready = $o['Ready'];
if (isset($o['Days'])) $this->Days = JsonConverters::fromArray('int', $o['Days']);
if (isset($o['IsOn'])) $this->IsOn = $o['IsOn'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Code)) $o['Code'] = $this->Code;
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->InBy)) $o['InBy'] = $this->InBy;
if (isset($this->WithinMin)) $o['WithinMin'] = $this->WithinMin;
if (isset($this->Ready)) $o['Ready'] = $this->Ready;
if (isset($this->Days)) $o['Days'] = JsonConverters::toArray('int', $this->Days);
if (isset($this->IsOn)) $o['IsOn'] = $this->IsOn;
return empty($o) ? new class(){} : $o;
}
}
class CourierFacilityView implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Code=null,
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $Address=null,
/** @var int */
public int $IntakeMin=0,
/** @var array<CourierLevelView>|null */
public ?array $Levels=null,
/** @var array<string>|null */
public ?array $Holidays=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Code'])) $this->Code = $o['Code'];
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['Address'])) $this->Address = $o['Address'];
if (isset($o['IntakeMin'])) $this->IntakeMin = $o['IntakeMin'];
if (isset($o['Levels'])) $this->Levels = JsonConverters::fromArray('CourierLevelView', $o['Levels']);
if (isset($o['Holidays'])) $this->Holidays = JsonConverters::fromArray('string', $o['Holidays']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Code)) $o['Code'] = $this->Code;
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->Address)) $o['Address'] = $this->Address;
if (isset($this->IntakeMin)) $o['IntakeMin'] = $this->IntakeMin;
if (isset($this->Levels)) $o['Levels'] = JsonConverters::toArray('CourierLevelView', $this->Levels);
if (isset($this->Holidays)) $o['Holidays'] = JsonConverters::toArray('string', $this->Holidays);
return empty($o) ? new class(){} : $o;
}
}
class CourierVehicleView implements JsonSerializable
{
public function __construct(
/** @var int */
public int $EquipmentID=0,
/** @var string|null */
public ?string $UnitNumber=null,
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $Unit=null,
/** @var float */
public float $Cap=0.0,
/** @var bool|null */
public ?bool $Cold=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['EquipmentID'])) $this->EquipmentID = $o['EquipmentID'];
if (isset($o['UnitNumber'])) $this->UnitNumber = $o['UnitNumber'];
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['Unit'])) $this->Unit = $o['Unit'];
if (isset($o['Cap'])) $this->Cap = $o['Cap'];
if (isset($o['Cold'])) $this->Cold = $o['Cold'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->EquipmentID)) $o['EquipmentID'] = $this->EquipmentID;
if (isset($this->UnitNumber)) $o['UnitNumber'] = $this->UnitNumber;
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->Unit)) $o['Unit'] = $this->Unit;
if (isset($this->Cap)) $o['Cap'] = $this->Cap;
if (isset($this->Cold)) $o['Cold'] = $this->Cold;
return empty($o) ? new class(){} : $o;
}
}
class CourierProfileContext implements JsonSerializable
{
public function __construct(
/** @var int */
public int $Drivers=0,
/** @var int */
public int $ProfileCount=0,
/** @var int|null */
public ?int $PayPlanId=null,
/** @var string|null */
public ?string $ZoneMode=null,
/** @var string|null */
public ?string $ZoneName=null,
/** @var int */
public int $ZoneCount=0,
/** @var bool|null */
public ?bool $HasBookingPage=null,
/** @var bool|null */
public ?bool $HasRateConfig=null,
/** @var array<string,string>|null */
public ?array $VehicleFacts=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Drivers'])) $this->Drivers = $o['Drivers'];
if (isset($o['ProfileCount'])) $this->ProfileCount = $o['ProfileCount'];
if (isset($o['PayPlanId'])) $this->PayPlanId = $o['PayPlanId'];
if (isset($o['ZoneMode'])) $this->ZoneMode = $o['ZoneMode'];
if (isset($o['ZoneName'])) $this->ZoneName = $o['ZoneName'];
if (isset($o['ZoneCount'])) $this->ZoneCount = $o['ZoneCount'];
if (isset($o['HasBookingPage'])) $this->HasBookingPage = $o['HasBookingPage'];
if (isset($o['HasRateConfig'])) $this->HasRateConfig = $o['HasRateConfig'];
if (isset($o['VehicleFacts'])) $this->VehicleFacts = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['VehicleFacts']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Drivers)) $o['Drivers'] = $this->Drivers;
if (isset($this->ProfileCount)) $o['ProfileCount'] = $this->ProfileCount;
if (isset($this->PayPlanId)) $o['PayPlanId'] = $this->PayPlanId;
if (isset($this->ZoneMode)) $o['ZoneMode'] = $this->ZoneMode;
if (isset($this->ZoneName)) $o['ZoneName'] = $this->ZoneName;
if (isset($this->ZoneCount)) $o['ZoneCount'] = $this->ZoneCount;
if (isset($this->HasBookingPage)) $o['HasBookingPage'] = $this->HasBookingPage;
if (isset($this->HasRateConfig)) $o['HasRateConfig'] = $this->HasRateConfig;
if (isset($this->VehicleFacts)) $o['VehicleFacts'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->VehicleFacts);
return empty($o) ? new class(){} : $o;
}
}
class CourierProfileView implements JsonSerializable
{
public function __construct(
/** @var int */
public int $CourierProfileID=0,
/** @var string|null */
public ?string $Code=null,
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $BusinessName=null,
/** @var string|null */
public ?string $RouteShape=null,
/** @var bool|null */
public ?bool $Enabled=null,
/** @var string|null */
public ?string $TemplateFrom=null,
/** @var string|null */
public ?string $UnitOne=null,
/** @var string|null */
public ?string $UnitMany=null,
/** @var string|null */
public ?string $FacilityNoun=null,
/** @var string|null */
public ?string $UnitOneEs=null,
/** @var string|null */
public ?string $UnitManyEs=null,
/** @var string|null */
public ?string $FacilityNounEs=null,
/** @var string|null */
public ?string $TagMode=null,
/** @var array<string>|null */
public ?array $TagFormats=null,
/** @var CourierPay|null */
public ?CourierPay $Pay=null,
/** @var CourierDispatch|null */
public ?CourierDispatch $Dispatch=null,
/** @var CourierMissed|null */
public ?CourierMissed $Missed=null,
/** @var CourierPrivacy|null */
public ?CourierPrivacy $Privacy=null,
/** @var CourierPricing|null */
public ?CourierPricing $Pricing=null,
/** @var CourierBooking|null */
public ?CourierBooking $Booking=null,
/** @var array<CourierFacilityView>|null */
public ?array $Facilities=null,
/** @var array<CourierVehicleView>|null */
public ?array $Vehicles=null,
/** @var array<string,array<string,string>>|null */
public ?array $Proof=null,
/** @var CourierProfileContext|null */
public ?CourierProfileContext $Context=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['CourierProfileID'])) $this->CourierProfileID = $o['CourierProfileID'];
if (isset($o['Code'])) $this->Code = $o['Code'];
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['BusinessName'])) $this->BusinessName = $o['BusinessName'];
if (isset($o['RouteShape'])) $this->RouteShape = $o['RouteShape'];
if (isset($o['Enabled'])) $this->Enabled = $o['Enabled'];
if (isset($o['TemplateFrom'])) $this->TemplateFrom = $o['TemplateFrom'];
if (isset($o['UnitOne'])) $this->UnitOne = $o['UnitOne'];
if (isset($o['UnitMany'])) $this->UnitMany = $o['UnitMany'];
if (isset($o['FacilityNoun'])) $this->FacilityNoun = $o['FacilityNoun'];
if (isset($o['UnitOneEs'])) $this->UnitOneEs = $o['UnitOneEs'];
if (isset($o['UnitManyEs'])) $this->UnitManyEs = $o['UnitManyEs'];
if (isset($o['FacilityNounEs'])) $this->FacilityNounEs = $o['FacilityNounEs'];
if (isset($o['TagMode'])) $this->TagMode = $o['TagMode'];
if (isset($o['TagFormats'])) $this->TagFormats = JsonConverters::fromArray('string', $o['TagFormats']);
if (isset($o['Pay'])) $this->Pay = JsonConverters::from('CourierPay', $o['Pay']);
if (isset($o['Dispatch'])) $this->Dispatch = JsonConverters::from('CourierDispatch', $o['Dispatch']);
if (isset($o['Missed'])) $this->Missed = JsonConverters::from('CourierMissed', $o['Missed']);
if (isset($o['Privacy'])) $this->Privacy = JsonConverters::from('CourierPrivacy', $o['Privacy']);
if (isset($o['Pricing'])) $this->Pricing = JsonConverters::from('CourierPricing', $o['Pricing']);
if (isset($o['Booking'])) $this->Booking = JsonConverters::from('CourierBooking', $o['Booking']);
if (isset($o['Facilities'])) $this->Facilities = JsonConverters::fromArray('CourierFacilityView', $o['Facilities']);
if (isset($o['Vehicles'])) $this->Vehicles = JsonConverters::fromArray('CourierVehicleView', $o['Vehicles']);
if (isset($o['Proof'])) $this->Proof = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','Dictionary<String,String>']), $o['Proof']);
if (isset($o['Context'])) $this->Context = JsonConverters::from('CourierProfileContext', $o['Context']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->CourierProfileID)) $o['CourierProfileID'] = $this->CourierProfileID;
if (isset($this->Code)) $o['Code'] = $this->Code;
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->BusinessName)) $o['BusinessName'] = $this->BusinessName;
if (isset($this->RouteShape)) $o['RouteShape'] = $this->RouteShape;
if (isset($this->Enabled)) $o['Enabled'] = $this->Enabled;
if (isset($this->TemplateFrom)) $o['TemplateFrom'] = $this->TemplateFrom;
if (isset($this->UnitOne)) $o['UnitOne'] = $this->UnitOne;
if (isset($this->UnitMany)) $o['UnitMany'] = $this->UnitMany;
if (isset($this->FacilityNoun)) $o['FacilityNoun'] = $this->FacilityNoun;
if (isset($this->UnitOneEs)) $o['UnitOneEs'] = $this->UnitOneEs;
if (isset($this->UnitManyEs)) $o['UnitManyEs'] = $this->UnitManyEs;
if (isset($this->FacilityNounEs)) $o['FacilityNounEs'] = $this->FacilityNounEs;
if (isset($this->TagMode)) $o['TagMode'] = $this->TagMode;
if (isset($this->TagFormats)) $o['TagFormats'] = JsonConverters::toArray('string', $this->TagFormats);
if (isset($this->Pay)) $o['Pay'] = JsonConverters::to('CourierPay', $this->Pay);
if (isset($this->Dispatch)) $o['Dispatch'] = JsonConverters::to('CourierDispatch', $this->Dispatch);
if (isset($this->Missed)) $o['Missed'] = JsonConverters::to('CourierMissed', $this->Missed);
if (isset($this->Privacy)) $o['Privacy'] = JsonConverters::to('CourierPrivacy', $this->Privacy);
if (isset($this->Pricing)) $o['Pricing'] = JsonConverters::to('CourierPricing', $this->Pricing);
if (isset($this->Booking)) $o['Booking'] = JsonConverters::to('CourierBooking', $this->Booking);
if (isset($this->Facilities)) $o['Facilities'] = JsonConverters::toArray('CourierFacilityView', $this->Facilities);
if (isset($this->Vehicles)) $o['Vehicles'] = JsonConverters::toArray('CourierVehicleView', $this->Vehicles);
if (isset($this->Proof)) $o['Proof'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','Dictionary<String,String>']), $this->Proof);
if (isset($this->Context)) $o['Context'] = JsonConverters::to('CourierProfileContext', $this->Context);
return empty($o) ? new class(){} : $o;
}
}
class CourierIssue implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Key=null,
/** @var string|null */
public ?string $Section=null,
/** @var string|null */
public ?string $Message=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Key'])) $this->Key = $o['Key'];
if (isset($o['Section'])) $this->Section = $o['Section'];
if (isset($o['Message'])) $this->Message = $o['Message'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Key)) $o['Key'] = $this->Key;
if (isset($this->Section)) $o['Section'] = $this->Section;
if (isset($this->Message)) $o['Message'] = $this->Message;
return empty($o) ? new class(){} : $o;
}
}
class CourierChange implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Key=null,
/** @var string|null */
public ?string $Section=null,
/** @var string|null */
public ?string $Label=null,
/** @var string|null */
public ?string $From=null,
/** @var string|null */
public ?string $To=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Key'])) $this->Key = $o['Key'];
if (isset($o['Section'])) $this->Section = $o['Section'];
if (isset($o['Label'])) $this->Label = $o['Label'];
if (isset($o['From'])) $this->From = $o['From'];
if (isset($o['To'])) $this->To = $o['To'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Key)) $o['Key'] = $this->Key;
if (isset($this->Section)) $o['Section'] = $this->Section;
if (isset($this->Label)) $o['Label'] = $this->Label;
if (isset($this->From)) $o['From'] = $this->From;
if (isset($this->To)) $o['To'] = $this->To;
return empty($o) ? new class(){} : $o;
}
}
class CourierPreviewLine implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $K=null,
/** @var string|null */
public ?string $V=null,
/** @var string|null */
public ?string $Dot=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['K'])) $this->K = $o['K'];
if (isset($o['V'])) $this->V = $o['V'];
if (isset($o['Dot'])) $this->Dot = $o['Dot'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->K)) $o['K'] = $this->K;
if (isset($this->V)) $o['V'] = $this->V;
if (isset($this->Dot)) $o['Dot'] = $this->Dot;
return empty($o) ? new class(){} : $o;
}
}
class CourierPreview implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $DeadlineTitle=null,
/** @var string|null */
public ?string $DeadlineLead=null,
/** @var string|null */
public ?string $RoomW=null,
/** @var string|null */
public ?string $LastW=null,
/** @var string|null */
public ?string $GoW=null,
/** @var array<CourierPreviewLine>|null */
public ?array $Zones=null,
/** @var string|null */
public ?string $PaySub=null,
/** @var array<CourierPreviewLine>|null */
public ?array $PayRows=null,
/** @var string|null */
public ?string $PayTotal=null,
/** @var array<CourierPreviewLine>|null */
public ?array $ProofRows=null,
/** @var string|null */
public ?string $Ping=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['DeadlineTitle'])) $this->DeadlineTitle = $o['DeadlineTitle'];
if (isset($o['DeadlineLead'])) $this->DeadlineLead = $o['DeadlineLead'];
if (isset($o['RoomW'])) $this->RoomW = $o['RoomW'];
if (isset($o['LastW'])) $this->LastW = $o['LastW'];
if (isset($o['GoW'])) $this->GoW = $o['GoW'];
if (isset($o['Zones'])) $this->Zones = JsonConverters::fromArray('CourierPreviewLine', $o['Zones']);
if (isset($o['PaySub'])) $this->PaySub = $o['PaySub'];
if (isset($o['PayRows'])) $this->PayRows = JsonConverters::fromArray('CourierPreviewLine', $o['PayRows']);
if (isset($o['PayTotal'])) $this->PayTotal = $o['PayTotal'];
if (isset($o['ProofRows'])) $this->ProofRows = JsonConverters::fromArray('CourierPreviewLine', $o['ProofRows']);
if (isset($o['Ping'])) $this->Ping = $o['Ping'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->DeadlineTitle)) $o['DeadlineTitle'] = $this->DeadlineTitle;
if (isset($this->DeadlineLead)) $o['DeadlineLead'] = $this->DeadlineLead;
if (isset($this->RoomW)) $o['RoomW'] = $this->RoomW;
if (isset($this->LastW)) $o['LastW'] = $this->LastW;
if (isset($this->GoW)) $o['GoW'] = $this->GoW;
if (isset($this->Zones)) $o['Zones'] = JsonConverters::toArray('CourierPreviewLine', $this->Zones);
if (isset($this->PaySub)) $o['PaySub'] = $this->PaySub;
if (isset($this->PayRows)) $o['PayRows'] = JsonConverters::toArray('CourierPreviewLine', $this->PayRows);
if (isset($this->PayTotal)) $o['PayTotal'] = $this->PayTotal;
if (isset($this->ProofRows)) $o['ProofRows'] = JsonConverters::toArray('CourierPreviewLine', $this->ProofRows);
if (isset($this->Ping)) $o['Ping'] = $this->Ping;
return empty($o) ? new class(){} : $o;
}
}
class CourierFleetVehicle implements JsonSerializable
{
public function __construct(
/** @var int */
public int $EquipmentID=0,
/** @var string|null */
public ?string $UnitNumber=null,
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $VehicleType=null,
/** @var string|null */
public ?string $Unit=null,
/** @var float|null */
public ?float $Cap=null,
/** @var bool|null */
public ?bool $Cold=null,
/** @var string|null */
public ?string $Status=null,
/** @var bool|null */
public ?bool $Assigned=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['EquipmentID'])) $this->EquipmentID = $o['EquipmentID'];
if (isset($o['UnitNumber'])) $this->UnitNumber = $o['UnitNumber'];
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['VehicleType'])) $this->VehicleType = $o['VehicleType'];
if (isset($o['Unit'])) $this->Unit = $o['Unit'];
if (isset($o['Cap'])) $this->Cap = $o['Cap'];
if (isset($o['Cold'])) $this->Cold = $o['Cold'];
if (isset($o['Status'])) $this->Status = $o['Status'];
if (isset($o['Assigned'])) $this->Assigned = $o['Assigned'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->EquipmentID)) $o['EquipmentID'] = $this->EquipmentID;
if (isset($this->UnitNumber)) $o['UnitNumber'] = $this->UnitNumber;
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->VehicleType)) $o['VehicleType'] = $this->VehicleType;
if (isset($this->Unit)) $o['Unit'] = $this->Unit;
if (isset($this->Cap)) $o['Cap'] = $this->Cap;
if (isset($this->Cold)) $o['Cold'] = $this->Cold;
if (isset($this->Status)) $o['Status'] = $this->Status;
if (isset($this->Assigned)) $o['Assigned'] = $this->Assigned;
return empty($o) ? new class(){} : $o;
}
}
class CourierResponse implements JsonSerializable
{
public function __construct(
/** @var array<CourierProfileSummary>|null */
public ?array $Profiles=null,
/** @var array<CourierTemplateOption>|null */
public ?array $Templates=null,
/** @var CourierProfileView|null */
public ?CourierProfileView $Profile=null,
/** @var array<CourierIssue>|null */
public ?array $Issues=null,
/** @var array<CourierChange>|null */
public ?array $Changes=null,
/** @var CourierPreview|null */
public ?CourierPreview $Preview=null,
/** @var array<CourierFleetVehicle>|null */
public ?array $Fleet=null,
/** @var ResponseStatus|null */
public ?ResponseStatus $ResponseStatus=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Profiles'])) $this->Profiles = JsonConverters::fromArray('CourierProfileSummary', $o['Profiles']);
if (isset($o['Templates'])) $this->Templates = JsonConverters::fromArray('CourierTemplateOption', $o['Templates']);
if (isset($o['Profile'])) $this->Profile = JsonConverters::from('CourierProfileView', $o['Profile']);
if (isset($o['Issues'])) $this->Issues = JsonConverters::fromArray('CourierIssue', $o['Issues']);
if (isset($o['Changes'])) $this->Changes = JsonConverters::fromArray('CourierChange', $o['Changes']);
if (isset($o['Preview'])) $this->Preview = JsonConverters::from('CourierPreview', $o['Preview']);
if (isset($o['Fleet'])) $this->Fleet = JsonConverters::fromArray('CourierFleetVehicle', $o['Fleet']);
if (isset($o['ResponseStatus'])) $this->ResponseStatus = JsonConverters::from('ResponseStatus', $o['ResponseStatus']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Profiles)) $o['Profiles'] = JsonConverters::toArray('CourierProfileSummary', $this->Profiles);
if (isset($this->Templates)) $o['Templates'] = JsonConverters::toArray('CourierTemplateOption', $this->Templates);
if (isset($this->Profile)) $o['Profile'] = JsonConverters::to('CourierProfileView', $this->Profile);
if (isset($this->Issues)) $o['Issues'] = JsonConverters::toArray('CourierIssue', $this->Issues);
if (isset($this->Changes)) $o['Changes'] = JsonConverters::toArray('CourierChange', $this->Changes);
if (isset($this->Preview)) $o['Preview'] = JsonConverters::to('CourierPreview', $this->Preview);
if (isset($this->Fleet)) $o['Fleet'] = JsonConverters::toArray('CourierFleetVehicle', $this->Fleet);
if (isset($this->ResponseStatus)) $o['ResponseStatus'] = JsonConverters::to('ResponseStatus', $this->ResponseStatus);
return empty($o) ? new class(){} : $o;
}
}
class CourierProfileRequest implements JsonSerializable
{
public function __construct(
/** @var int */
public int $Id=0,
/** @var string|null */
public ?string $FacilityCode=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['FacilityCode'])) $this->FacilityCode = $o['FacilityCode'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->FacilityCode)) $o['FacilityCode'] = $this->FacilityCode;
return empty($o) ? new class(){} : $o;
}
}
PHP CourierProfileRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=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
}
}
}