| POST,OPTIONS | /v1/dispatch/track/{Token}/rating |
|---|
<?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 CourierTrackActRequest implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Token=null,
/** @var string|null */
public ?string $ActToken=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Token'])) $this->Token = $o['Token'];
if (isset($o['ActToken'])) $this->ActToken = $o['ActToken'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Token)) $o['Token'] = $this->Token;
if (isset($this->ActToken)) $o['ActToken'] = $this->ActToken;
return empty($o) ? new class(){} : $o;
}
}
class DispatchTrackStepView implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Name=null,
/** @var DateTime|null */
public ?DateTime $At=null,
/** @var bool|null */
public ?bool $Done=null,
/** @var bool|null */
public ?bool $Current=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['At'])) $this->At = JsonConverters::from('DateTime', $o['At']);
if (isset($o['Done'])) $this->Done = $o['Done'];
if (isset($o['Current'])) $this->Current = $o['Current'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->At)) $o['At'] = JsonConverters::to('DateTime', $this->At);
if (isset($this->Done)) $o['Done'] = $this->Done;
if (isset($this->Current)) $o['Current'] = $this->Current;
return empty($o) ? new class(){} : $o;
}
}
class CourierTrackBusiness implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $Phone=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['Phone'])) $this->Phone = $o['Phone'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->Phone)) $o['Phone'] = $this->Phone;
return empty($o) ? new class(){} : $o;
}
}
class CourierTrackDriver implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $FirstName=null,
/** @var string|null */
public ?string $Initial=null,
/** @var string|null */
public ?string $Vehicle=null,
/** @var string|null */
public ?string $Plate=null,
/** @var int|null */
public ?int $EtaMin=null,
/** @var int|null */
public ?int $EtaPct=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['FirstName'])) $this->FirstName = $o['FirstName'];
if (isset($o['Initial'])) $this->Initial = $o['Initial'];
if (isset($o['Vehicle'])) $this->Vehicle = $o['Vehicle'];
if (isset($o['Plate'])) $this->Plate = $o['Plate'];
if (isset($o['EtaMin'])) $this->EtaMin = $o['EtaMin'];
if (isset($o['EtaPct'])) $this->EtaPct = $o['EtaPct'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->FirstName)) $o['FirstName'] = $this->FirstName;
if (isset($this->Initial)) $o['Initial'] = $this->Initial;
if (isset($this->Vehicle)) $o['Vehicle'] = $this->Vehicle;
if (isset($this->Plate)) $o['Plate'] = $this->Plate;
if (isset($this->EtaMin)) $o['EtaMin'] = $this->EtaMin;
if (isset($this->EtaPct)) $o['EtaPct'] = $this->EtaPct;
return empty($o) ? new class(){} : $o;
}
}
class CourierTrackProof implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Kind=null,
/** @var string|null */
public ?string $PhotoUrl=null,
/** @var string|null */
public ?string $AtText=null,
/** @var bool|null */
public ?bool $GpsOk=null,
/** @var int */
public int $Units=0,
/** @var string|null */
public ?string $DamageNote=null,
/** @var string|null */
public ?string $DeliveredTo=null,
/** @var int */
public int $WaitedMin=0,
/** @var int */
public int $Attempts=0,
/** @var string|null */
public ?string $ContactedText=null,
/** @var bool|null */
public ?bool $EachTagged=null,
/** @var bool|null */
public ?bool $EachScanned=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Kind'])) $this->Kind = $o['Kind'];
if (isset($o['PhotoUrl'])) $this->PhotoUrl = $o['PhotoUrl'];
if (isset($o['AtText'])) $this->AtText = $o['AtText'];
if (isset($o['GpsOk'])) $this->GpsOk = $o['GpsOk'];
if (isset($o['Units'])) $this->Units = $o['Units'];
if (isset($o['DamageNote'])) $this->DamageNote = $o['DamageNote'];
if (isset($o['DeliveredTo'])) $this->DeliveredTo = $o['DeliveredTo'];
if (isset($o['WaitedMin'])) $this->WaitedMin = $o['WaitedMin'];
if (isset($o['Attempts'])) $this->Attempts = $o['Attempts'];
if (isset($o['ContactedText'])) $this->ContactedText = $o['ContactedText'];
if (isset($o['EachTagged'])) $this->EachTagged = $o['EachTagged'];
if (isset($o['EachScanned'])) $this->EachScanned = $o['EachScanned'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Kind)) $o['Kind'] = $this->Kind;
if (isset($this->PhotoUrl)) $o['PhotoUrl'] = $this->PhotoUrl;
if (isset($this->AtText)) $o['AtText'] = $this->AtText;
if (isset($this->GpsOk)) $o['GpsOk'] = $this->GpsOk;
if (isset($this->Units)) $o['Units'] = $this->Units;
if (isset($this->DamageNote)) $o['DamageNote'] = $this->DamageNote;
if (isset($this->DeliveredTo)) $o['DeliveredTo'] = $this->DeliveredTo;
if (isset($this->WaitedMin)) $o['WaitedMin'] = $this->WaitedMin;
if (isset($this->Attempts)) $o['Attempts'] = $this->Attempts;
if (isset($this->ContactedText)) $o['ContactedText'] = $this->ContactedText;
if (isset($this->EachTagged)) $o['EachTagged'] = $this->EachTagged;
if (isset($this->EachScanned)) $o['EachScanned'] = $this->EachScanned;
return empty($o) ? new class(){} : $o;
}
}
class CourierTrackRating implements JsonSerializable
{
public function __construct(
/** @var int */
public int $Stars=0,
/** @var string|null */
public ?string $Tags=null,
/** @var float */
public float $Tip=0.0,
/** @var string|null */
public ?string $TipStatus=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Stars'])) $this->Stars = $o['Stars'];
if (isset($o['Tags'])) $this->Tags = $o['Tags'];
if (isset($o['Tip'])) $this->Tip = $o['Tip'];
if (isset($o['TipStatus'])) $this->TipStatus = $o['TipStatus'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Stars)) $o['Stars'] = $this->Stars;
if (isset($this->Tags)) $o['Tags'] = $this->Tags;
if (isset($this->Tip)) $o['Tip'] = $this->Tip;
if (isset($this->TipStatus)) $o['TipStatus'] = $this->TipStatus;
return empty($o) ? new class(){} : $o;
}
}
class CourierTrackSlot implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Id=null,
/** @var string|null */
public ?string $Day=null,
/** @var string|null */
public ?string $DayEs=null,
/** @var string|null */
public ?string $Win=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['Day'])) $this->Day = $o['Day'];
if (isset($o['DayEs'])) $this->DayEs = $o['DayEs'];
if (isset($o['Win'])) $this->Win = $o['Win'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->Day)) $o['Day'] = $this->Day;
if (isset($this->DayEs)) $o['DayEs'] = $this->DayEs;
if (isset($this->Win)) $o['Win'] = $this->Win;
return empty($o) ? new class(){} : $o;
}
}
class CourierTrackMissed implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Code=null,
/** @var float */
public float $Fee=0.0,
/** @var int */
public int $WaitedMin=0,
/** @var bool|null */
public ?bool $AutoRebook=null,
/** @var string|null */
public ?string $RebookWindowText=null,
/** @var array<CourierTrackSlot>|null */
public ?array $Slots=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Code'])) $this->Code = $o['Code'];
if (isset($o['Fee'])) $this->Fee = $o['Fee'];
if (isset($o['WaitedMin'])) $this->WaitedMin = $o['WaitedMin'];
if (isset($o['AutoRebook'])) $this->AutoRebook = $o['AutoRebook'];
if (isset($o['RebookWindowText'])) $this->RebookWindowText = $o['RebookWindowText'];
if (isset($o['Slots'])) $this->Slots = JsonConverters::fromArray('CourierTrackSlot', $o['Slots']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Code)) $o['Code'] = $this->Code;
if (isset($this->Fee)) $o['Fee'] = $this->Fee;
if (isset($this->WaitedMin)) $o['WaitedMin'] = $this->WaitedMin;
if (isset($this->AutoRebook)) $o['AutoRebook'] = $this->AutoRebook;
if (isset($this->RebookWindowText)) $o['RebookWindowText'] = $this->RebookWindowText;
if (isset($this->Slots)) $o['Slots'] = JsonConverters::toArray('CourierTrackSlot', $this->Slots);
return empty($o) ? new class(){} : $o;
}
}
class CourierTrackCan implements JsonSerializable
{
public function __construct(
/** @var bool|null */
public ?bool $EditInstructions=null,
/** @var bool|null */
public ?bool $ChangeUnits=null,
/** @var bool|null */
public ?bool $Cancel=null,
/** @var bool|null */
public ?bool $RescheduleDelivery=null,
/** @var bool|null */
public ?bool $Rebook=null,
/** @var bool|null */
public ?bool $Rate=null,
/** @var bool|null */
public ?bool $Message=null,
/** @var bool|null */
public ?bool $Report=null,
/** @var int */
public int $MaxUnits=0
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['EditInstructions'])) $this->EditInstructions = $o['EditInstructions'];
if (isset($o['ChangeUnits'])) $this->ChangeUnits = $o['ChangeUnits'];
if (isset($o['Cancel'])) $this->Cancel = $o['Cancel'];
if (isset($o['RescheduleDelivery'])) $this->RescheduleDelivery = $o['RescheduleDelivery'];
if (isset($o['Rebook'])) $this->Rebook = $o['Rebook'];
if (isset($o['Rate'])) $this->Rate = $o['Rate'];
if (isset($o['Message'])) $this->Message = $o['Message'];
if (isset($o['Report'])) $this->Report = $o['Report'];
if (isset($o['MaxUnits'])) $this->MaxUnits = $o['MaxUnits'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->EditInstructions)) $o['EditInstructions'] = $this->EditInstructions;
if (isset($this->ChangeUnits)) $o['ChangeUnits'] = $this->ChangeUnits;
if (isset($this->Cancel)) $o['Cancel'] = $this->Cancel;
if (isset($this->RescheduleDelivery)) $o['RescheduleDelivery'] = $this->RescheduleDelivery;
if (isset($this->Rebook)) $o['Rebook'] = $this->Rebook;
if (isset($this->Rate)) $o['Rate'] = $this->Rate;
if (isset($this->Message)) $o['Message'] = $this->Message;
if (isset($this->Report)) $o['Report'] = $this->Report;
if (isset($this->MaxUnits)) $o['MaxUnits'] = $this->MaxUnits;
return empty($o) ? new class(){} : $o;
}
}
class CourierTrackMessage implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Who=null,
/** @var bool|null */
public ?bool $Mine=null,
/** @var bool|null */
public ?bool $Office=null,
/** @var string|null */
public ?string $AtText=null,
/** @var string|null */
public ?string $Body=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Who'])) $this->Who = $o['Who'];
if (isset($o['Mine'])) $this->Mine = $o['Mine'];
if (isset($o['Office'])) $this->Office = $o['Office'];
if (isset($o['AtText'])) $this->AtText = $o['AtText'];
if (isset($o['Body'])) $this->Body = $o['Body'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Who)) $o['Who'] = $this->Who;
if (isset($this->Mine)) $o['Mine'] = $this->Mine;
if (isset($this->Office)) $o['Office'] = $this->Office;
if (isset($this->AtText)) $o['AtText'] = $this->AtText;
if (isset($this->Body)) $o['Body'] = $this->Body;
return empty($o) ? new class(){} : $o;
}
}
class CourierTrackView implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $State=null,
/** @var string|null */
public ?string $Code=null,
/** @var string|null */
public ?string $RunCode=null,
/** @var string|null */
public ?string $Shape=null,
/** @var string|null */
public ?string $Template=null,
/** @var string|null */
public ?string $CourierStep=null,
/** @var string|null */
public ?string $UnitOne=null,
/** @var string|null */
public ?string $UnitMany=null,
/** @var string|null */
public ?string $UnitOneEs=null,
/** @var string|null */
public ?string $UnitManyEs=null,
/** @var string|null */
public ?string $FacilityNoun=null,
/** @var string|null */
public ?string $FacilityNounEs=null,
/** @var int */
public int $Units=0,
/** @var bool|null */
public ?bool $UnitsCounted=null,
/** @var string|null */
public ?string $Address=null,
/** @var string|null */
public ?string $DropoffAddress=null,
/** @var string|null */
public ?string $DropoffName=null,
/** @var string|null */
public ?string $Instructions=null,
/** @var string|null */
public ?string $GateCode=null,
/** @var string|null */
public ?string $Handoff=null,
/** @var string|null */
public ?string $LevelName=null,
/** @var string|null */
public ?string $ReadyPromise=null,
/** @var string|null */
public ?string $WindowText=null,
/** @var bool|null */
public ?bool $IsAsap=null,
/** @var array<string,string>|null */
public ?array $Times=null,
/** @var int|null */
public ?int $StopPosition=null,
/** @var int|null */
public ?int $StopCount=null,
/** @var string|null */
public ?string $DeliveryWindowText=null,
/** @var CourierTrackDriver|null */
public ?CourierTrackDriver $Driver=null,
/** @var CourierTrackProof|null */
public ?CourierTrackProof $Proof=null,
/** @var string|null */
public ?string $HandoffCode=null,
/** @var CourierTrackRating|null */
public ?CourierTrackRating $Rating=null,
/** @var bool|null */
public ?bool $TipAllowed=null,
/** @var float */
public float $TipsPct=0.0,
/** @var CourierTrackMissed|null */
public ?CourierTrackMissed $Missed=null,
/** @var float */
public float $CancelFee=0.0,
/** @var float */
public float $CancelFeeCharged=0.0,
/** @var string|null */
public ?string $CancelledBy=null,
/** @var string|null */
public ?string $BookUrl=null,
/** @var CourierTrackCan|null */
public ?CourierTrackCan $Can=null,
/** @var array<CourierTrackSlot>|null */
public ?array $DeliverySlots=null,
/** @var array<CourierTrackMessage>|null */
public ?array $Messages=null,
/** @var bool|null */
public ?bool $MessagesOpen=null,
/** @var string|null */
public ?string $CaseCode=null,
/** @var string|null */
public ?string $CaseStatus=null,
/** @var string|null */
public ?string $CaseReply=null,
/** @var int */
public int $ThreadHrs=0,
/** @var DateTime|null */
public ?DateTime $ExpiresUtc=null,
/** @var bool|null */
public ?bool $LiveEta=null,
/** @var bool|null */
public ?bool $Live=null,
/** @var DateTime */
public DateTime $ServerUtc=new DateTime()
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['State'])) $this->State = $o['State'];
if (isset($o['Code'])) $this->Code = $o['Code'];
if (isset($o['RunCode'])) $this->RunCode = $o['RunCode'];
if (isset($o['Shape'])) $this->Shape = $o['Shape'];
if (isset($o['Template'])) $this->Template = $o['Template'];
if (isset($o['CourierStep'])) $this->CourierStep = $o['CourierStep'];
if (isset($o['UnitOne'])) $this->UnitOne = $o['UnitOne'];
if (isset($o['UnitMany'])) $this->UnitMany = $o['UnitMany'];
if (isset($o['UnitOneEs'])) $this->UnitOneEs = $o['UnitOneEs'];
if (isset($o['UnitManyEs'])) $this->UnitManyEs = $o['UnitManyEs'];
if (isset($o['FacilityNoun'])) $this->FacilityNoun = $o['FacilityNoun'];
if (isset($o['FacilityNounEs'])) $this->FacilityNounEs = $o['FacilityNounEs'];
if (isset($o['Units'])) $this->Units = $o['Units'];
if (isset($o['UnitsCounted'])) $this->UnitsCounted = $o['UnitsCounted'];
if (isset($o['Address'])) $this->Address = $o['Address'];
if (isset($o['DropoffAddress'])) $this->DropoffAddress = $o['DropoffAddress'];
if (isset($o['DropoffName'])) $this->DropoffName = $o['DropoffName'];
if (isset($o['Instructions'])) $this->Instructions = $o['Instructions'];
if (isset($o['GateCode'])) $this->GateCode = $o['GateCode'];
if (isset($o['Handoff'])) $this->Handoff = $o['Handoff'];
if (isset($o['LevelName'])) $this->LevelName = $o['LevelName'];
if (isset($o['ReadyPromise'])) $this->ReadyPromise = $o['ReadyPromise'];
if (isset($o['WindowText'])) $this->WindowText = $o['WindowText'];
if (isset($o['IsAsap'])) $this->IsAsap = $o['IsAsap'];
if (isset($o['Times'])) $this->Times = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['Times']);
if (isset($o['StopPosition'])) $this->StopPosition = $o['StopPosition'];
if (isset($o['StopCount'])) $this->StopCount = $o['StopCount'];
if (isset($o['DeliveryWindowText'])) $this->DeliveryWindowText = $o['DeliveryWindowText'];
if (isset($o['Driver'])) $this->Driver = JsonConverters::from('CourierTrackDriver', $o['Driver']);
if (isset($o['Proof'])) $this->Proof = JsonConverters::from('CourierTrackProof', $o['Proof']);
if (isset($o['HandoffCode'])) $this->HandoffCode = $o['HandoffCode'];
if (isset($o['Rating'])) $this->Rating = JsonConverters::from('CourierTrackRating', $o['Rating']);
if (isset($o['TipAllowed'])) $this->TipAllowed = $o['TipAllowed'];
if (isset($o['TipsPct'])) $this->TipsPct = $o['TipsPct'];
if (isset($o['Missed'])) $this->Missed = JsonConverters::from('CourierTrackMissed', $o['Missed']);
if (isset($o['CancelFee'])) $this->CancelFee = $o['CancelFee'];
if (isset($o['CancelFeeCharged'])) $this->CancelFeeCharged = $o['CancelFeeCharged'];
if (isset($o['CancelledBy'])) $this->CancelledBy = $o['CancelledBy'];
if (isset($o['BookUrl'])) $this->BookUrl = $o['BookUrl'];
if (isset($o['Can'])) $this->Can = JsonConverters::from('CourierTrackCan', $o['Can']);
if (isset($o['DeliverySlots'])) $this->DeliverySlots = JsonConverters::fromArray('CourierTrackSlot', $o['DeliverySlots']);
if (isset($o['Messages'])) $this->Messages = JsonConverters::fromArray('CourierTrackMessage', $o['Messages']);
if (isset($o['MessagesOpen'])) $this->MessagesOpen = $o['MessagesOpen'];
if (isset($o['CaseCode'])) $this->CaseCode = $o['CaseCode'];
if (isset($o['CaseStatus'])) $this->CaseStatus = $o['CaseStatus'];
if (isset($o['CaseReply'])) $this->CaseReply = $o['CaseReply'];
if (isset($o['ThreadHrs'])) $this->ThreadHrs = $o['ThreadHrs'];
if (isset($o['ExpiresUtc'])) $this->ExpiresUtc = JsonConverters::from('DateTime', $o['ExpiresUtc']);
if (isset($o['LiveEta'])) $this->LiveEta = $o['LiveEta'];
if (isset($o['Live'])) $this->Live = $o['Live'];
if (isset($o['ServerUtc'])) $this->ServerUtc = JsonConverters::from('DateTime', $o['ServerUtc']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->State)) $o['State'] = $this->State;
if (isset($this->Code)) $o['Code'] = $this->Code;
if (isset($this->RunCode)) $o['RunCode'] = $this->RunCode;
if (isset($this->Shape)) $o['Shape'] = $this->Shape;
if (isset($this->Template)) $o['Template'] = $this->Template;
if (isset($this->CourierStep)) $o['CourierStep'] = $this->CourierStep;
if (isset($this->UnitOne)) $o['UnitOne'] = $this->UnitOne;
if (isset($this->UnitMany)) $o['UnitMany'] = $this->UnitMany;
if (isset($this->UnitOneEs)) $o['UnitOneEs'] = $this->UnitOneEs;
if (isset($this->UnitManyEs)) $o['UnitManyEs'] = $this->UnitManyEs;
if (isset($this->FacilityNoun)) $o['FacilityNoun'] = $this->FacilityNoun;
if (isset($this->FacilityNounEs)) $o['FacilityNounEs'] = $this->FacilityNounEs;
if (isset($this->Units)) $o['Units'] = $this->Units;
if (isset($this->UnitsCounted)) $o['UnitsCounted'] = $this->UnitsCounted;
if (isset($this->Address)) $o['Address'] = $this->Address;
if (isset($this->DropoffAddress)) $o['DropoffAddress'] = $this->DropoffAddress;
if (isset($this->DropoffName)) $o['DropoffName'] = $this->DropoffName;
if (isset($this->Instructions)) $o['Instructions'] = $this->Instructions;
if (isset($this->GateCode)) $o['GateCode'] = $this->GateCode;
if (isset($this->Handoff)) $o['Handoff'] = $this->Handoff;
if (isset($this->LevelName)) $o['LevelName'] = $this->LevelName;
if (isset($this->ReadyPromise)) $o['ReadyPromise'] = $this->ReadyPromise;
if (isset($this->WindowText)) $o['WindowText'] = $this->WindowText;
if (isset($this->IsAsap)) $o['IsAsap'] = $this->IsAsap;
if (isset($this->Times)) $o['Times'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->Times);
if (isset($this->StopPosition)) $o['StopPosition'] = $this->StopPosition;
if (isset($this->StopCount)) $o['StopCount'] = $this->StopCount;
if (isset($this->DeliveryWindowText)) $o['DeliveryWindowText'] = $this->DeliveryWindowText;
if (isset($this->Driver)) $o['Driver'] = JsonConverters::to('CourierTrackDriver', $this->Driver);
if (isset($this->Proof)) $o['Proof'] = JsonConverters::to('CourierTrackProof', $this->Proof);
if (isset($this->HandoffCode)) $o['HandoffCode'] = $this->HandoffCode;
if (isset($this->Rating)) $o['Rating'] = JsonConverters::to('CourierTrackRating', $this->Rating);
if (isset($this->TipAllowed)) $o['TipAllowed'] = $this->TipAllowed;
if (isset($this->TipsPct)) $o['TipsPct'] = $this->TipsPct;
if (isset($this->Missed)) $o['Missed'] = JsonConverters::to('CourierTrackMissed', $this->Missed);
if (isset($this->CancelFee)) $o['CancelFee'] = $this->CancelFee;
if (isset($this->CancelFeeCharged)) $o['CancelFeeCharged'] = $this->CancelFeeCharged;
if (isset($this->CancelledBy)) $o['CancelledBy'] = $this->CancelledBy;
if (isset($this->BookUrl)) $o['BookUrl'] = $this->BookUrl;
if (isset($this->Can)) $o['Can'] = JsonConverters::to('CourierTrackCan', $this->Can);
if (isset($this->DeliverySlots)) $o['DeliverySlots'] = JsonConverters::toArray('CourierTrackSlot', $this->DeliverySlots);
if (isset($this->Messages)) $o['Messages'] = JsonConverters::toArray('CourierTrackMessage', $this->Messages);
if (isset($this->MessagesOpen)) $o['MessagesOpen'] = $this->MessagesOpen;
if (isset($this->CaseCode)) $o['CaseCode'] = $this->CaseCode;
if (isset($this->CaseStatus)) $o['CaseStatus'] = $this->CaseStatus;
if (isset($this->CaseReply)) $o['CaseReply'] = $this->CaseReply;
if (isset($this->ThreadHrs)) $o['ThreadHrs'] = $this->ThreadHrs;
if (isset($this->ExpiresUtc)) $o['ExpiresUtc'] = JsonConverters::to('DateTime', $this->ExpiresUtc);
if (isset($this->LiveEta)) $o['LiveEta'] = $this->LiveEta;
if (isset($this->Live)) $o['Live'] = $this->Live;
if (isset($this->ServerUtc)) $o['ServerUtc'] = JsonConverters::to('DateTime', $this->ServerUtc);
return empty($o) ? new class(){} : $o;
}
}
class DispatchTrackResponse implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Kind=null,
/** @var string|null */
public ?string $Code=null,
/** @var string|null */
public ?string $What=null,
/** @var string|null */
public ?string $FromLoc=null,
/** @var string|null */
public ?string $ToLoc=null,
/** @var int|null */
public ?int $Bags=null,
/** @var float|null */
public ?float $Fare=null,
/** @var string|null */
public ?string $PayMode=null,
/** @var string|null */
public ?string $CardLast4=null,
/** @var bool|null */
public ?bool $Charged=null,
/** @var string|null */
public ?string $Stage=null,
/** @var string|null */
public ?string $Headline=null,
/** @var string|null */
public ?string $Sub=null,
/** @var bool|null */
public ?bool $IsClosed=null,
/** @var string|null */
public ?string $Eta=null,
/** @var string|null */
public ?string $DriverName=null,
/** @var string|null */
public ?string $CustomerName=null,
/** @var array<DispatchTrackStepView>|null */
public ?array $Steps=null,
/** @var bool|null */
public ?bool $Expired=null,
/** @var bool|null */
public ?bool $Invalid=null,
/** @var CourierTrackBusiness|null */
public ?CourierTrackBusiness $Business=null,
/** @var CourierTrackView|null */
public ?CourierTrackView $Courier=null,
/** @var string|null */
public ?string $Notice=null,
/** @var ResponseStatus|null */
public ?ResponseStatus $ResponseStatus=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Kind'])) $this->Kind = $o['Kind'];
if (isset($o['Code'])) $this->Code = $o['Code'];
if (isset($o['What'])) $this->What = $o['What'];
if (isset($o['FromLoc'])) $this->FromLoc = $o['FromLoc'];
if (isset($o['ToLoc'])) $this->ToLoc = $o['ToLoc'];
if (isset($o['Bags'])) $this->Bags = $o['Bags'];
if (isset($o['Fare'])) $this->Fare = $o['Fare'];
if (isset($o['PayMode'])) $this->PayMode = $o['PayMode'];
if (isset($o['CardLast4'])) $this->CardLast4 = $o['CardLast4'];
if (isset($o['Charged'])) $this->Charged = $o['Charged'];
if (isset($o['Stage'])) $this->Stage = $o['Stage'];
if (isset($o['Headline'])) $this->Headline = $o['Headline'];
if (isset($o['Sub'])) $this->Sub = $o['Sub'];
if (isset($o['IsClosed'])) $this->IsClosed = $o['IsClosed'];
if (isset($o['Eta'])) $this->Eta = $o['Eta'];
if (isset($o['DriverName'])) $this->DriverName = $o['DriverName'];
if (isset($o['CustomerName'])) $this->CustomerName = $o['CustomerName'];
if (isset($o['Steps'])) $this->Steps = JsonConverters::fromArray('DispatchTrackStepView', $o['Steps']);
if (isset($o['Expired'])) $this->Expired = $o['Expired'];
if (isset($o['Invalid'])) $this->Invalid = $o['Invalid'];
if (isset($o['Business'])) $this->Business = JsonConverters::from('CourierTrackBusiness', $o['Business']);
if (isset($o['Courier'])) $this->Courier = JsonConverters::from('CourierTrackView', $o['Courier']);
if (isset($o['Notice'])) $this->Notice = $o['Notice'];
if (isset($o['ResponseStatus'])) $this->ResponseStatus = JsonConverters::from('ResponseStatus', $o['ResponseStatus']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Kind)) $o['Kind'] = $this->Kind;
if (isset($this->Code)) $o['Code'] = $this->Code;
if (isset($this->What)) $o['What'] = $this->What;
if (isset($this->FromLoc)) $o['FromLoc'] = $this->FromLoc;
if (isset($this->ToLoc)) $o['ToLoc'] = $this->ToLoc;
if (isset($this->Bags)) $o['Bags'] = $this->Bags;
if (isset($this->Fare)) $o['Fare'] = $this->Fare;
if (isset($this->PayMode)) $o['PayMode'] = $this->PayMode;
if (isset($this->CardLast4)) $o['CardLast4'] = $this->CardLast4;
if (isset($this->Charged)) $o['Charged'] = $this->Charged;
if (isset($this->Stage)) $o['Stage'] = $this->Stage;
if (isset($this->Headline)) $o['Headline'] = $this->Headline;
if (isset($this->Sub)) $o['Sub'] = $this->Sub;
if (isset($this->IsClosed)) $o['IsClosed'] = $this->IsClosed;
if (isset($this->Eta)) $o['Eta'] = $this->Eta;
if (isset($this->DriverName)) $o['DriverName'] = $this->DriverName;
if (isset($this->CustomerName)) $o['CustomerName'] = $this->CustomerName;
if (isset($this->Steps)) $o['Steps'] = JsonConverters::toArray('DispatchTrackStepView', $this->Steps);
if (isset($this->Expired)) $o['Expired'] = $this->Expired;
if (isset($this->Invalid)) $o['Invalid'] = $this->Invalid;
if (isset($this->Business)) $o['Business'] = JsonConverters::to('CourierTrackBusiness', $this->Business);
if (isset($this->Courier)) $o['Courier'] = JsonConverters::to('CourierTrackView', $this->Courier);
if (isset($this->Notice)) $o['Notice'] = $this->Notice;
if (isset($this->ResponseStatus)) $o['ResponseStatus'] = JsonConverters::to('ResponseStatus', $this->ResponseStatus);
return empty($o) ? new class(){} : $o;
}
}
class CourierTrackRatingRequest extends CourierTrackActRequest implements JsonSerializable
{
/**
* @param string|null $Token
* @param string|null $ActToken
*/
public function __construct(
?string $Token=null,
?string $ActToken=null,
/** @var int */
public int $Stars=0,
/** @var array<string>|null */
public ?array $Tags=null,
/** @var float|null */
public ?float $Tip=null
) {
parent::__construct($Token,$ActToken);
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Stars'])) $this->Stars = $o['Stars'];
if (isset($o['Tags'])) $this->Tags = JsonConverters::fromArray('string', $o['Tags']);
if (isset($o['Tip'])) $this->Tip = $o['Tip'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Stars)) $o['Stars'] = $this->Stars;
if (isset($this->Tags)) $o['Tags'] = JsonConverters::toArray('string', $this->Tags);
if (isset($this->Tip)) $o['Tip'] = $this->Tip;
return empty($o) ? new class(){} : $o;
}
}
PHP CourierTrackRatingRequest 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.
POST /v1/dispatch/track/{Token}/rating HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
Stars: 0,
Tags:
[
String
],
Tip: 0,
Token: String,
ActToken: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Kind: String,
Code: String,
What: String,
FromLoc: String,
ToLoc: String,
Bags: 0,
Fare: 0,
PayMode: String,
CardLast4: String,
Charged: False,
Stage: String,
Headline: String,
Sub: String,
IsClosed: False,
Eta: String,
DriverName: String,
CustomerName: String,
Steps:
[
{
Name: String,
At: 0001-01-01,
Done: False,
Current: False
}
],
Expired: False,
Invalid: False,
Business:
{
Name: String,
Phone: String
},
Courier:
{
State: String,
Code: String,
RunCode: String,
Shape: String,
Template: String,
CourierStep: String,
UnitOne: String,
UnitMany: String,
UnitOneEs: String,
UnitManyEs: String,
FacilityNoun: String,
FacilityNounEs: String,
Units: 0,
UnitsCounted: False,
Address: String,
DropoffAddress: String,
DropoffName: String,
Instructions: String,
GateCode: String,
Handoff: String,
LevelName: String,
ReadyPromise: String,
WindowText: String,
IsAsap: False,
Times:
{
String: String
},
StopPosition: 0,
StopCount: 0,
DeliveryWindowText: String,
Driver:
{
FirstName: String,
Initial: String,
Vehicle: String,
Plate: String,
EtaMin: 0,
EtaPct: 0
},
Proof:
{
Kind: String,
PhotoUrl: String,
AtText: String,
GpsOk: False,
Units: 0,
DamageNote: String,
DeliveredTo: String,
WaitedMin: 0,
Attempts: 0,
ContactedText: String,
EachTagged: False,
EachScanned: False
},
HandoffCode: String,
Rating:
{
Stars: 0,
Tags: String,
Tip: 0,
TipStatus: String
},
TipAllowed: False,
TipsPct: 0,
Missed:
{
Code: String,
Fee: 0,
WaitedMin: 0,
AutoRebook: False,
RebookWindowText: String,
Slots:
[
{
Id: String,
Day: String,
DayEs: String,
Win: String
}
]
},
CancelFee: 0,
CancelFeeCharged: 0,
CancelledBy: String,
BookUrl: String,
Can:
{
EditInstructions: False,
ChangeUnits: False,
Cancel: False,
RescheduleDelivery: False,
Rebook: False,
Rate: False,
Message: False,
Report: False,
MaxUnits: 0
},
DeliverySlots:
[
{
Id: String,
Day: String,
DayEs: String,
Win: String
}
],
Messages:
[
{
Who: String,
Mine: False,
Office: False,
AtText: String,
Body: String
}
],
MessagesOpen: False,
CaseCode: String,
CaseStatus: String,
CaseReply: String,
ThreadHrs: 0,
ExpiresUtc: 0001-01-01,
LiveEta: False,
Live: False,
ServerUtc: 0001-01-01
},
Notice: String,
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
}
}