| POST | /v1/CarConfiguratorStock | Validate and save a car configurator code for a vehicle search | This endpoint calls Agency API to validate and save a car configurator code. The code is validated and saved in the database and returns a response from a third party CCS which provides car configuration details. These get saved to open search and used to perform a vehicle search |
|---|
<?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 KeyInformation implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $BM7NST=null,
/** @var string|null */
public ?string $ConfigurationDate=null,
/** @var string|null */
public ?string $ModelYear=null,
/** @var string|null */
public ?string $HalfYear=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['BM7NST'])) $this->BM7NST = $o['BM7NST'];
if (isset($o['ConfigurationDate'])) $this->ConfigurationDate = $o['ConfigurationDate'];
if (isset($o['ModelYear'])) $this->ModelYear = $o['ModelYear'];
if (isset($o['HalfYear'])) $this->HalfYear = $o['HalfYear'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->BM7NST)) $o['BM7NST'] = $this->BM7NST;
if (isset($this->ConfigurationDate)) $o['ConfigurationDate'] = $this->ConfigurationDate;
if (isset($this->ModelYear)) $o['ModelYear'] = $this->ModelYear;
if (isset($this->HalfYear)) $o['HalfYear'] = $this->HalfYear;
return empty($o) ? new class(){} : $o;
}
}
class EquipmentCache implements JsonSerializable
{
public function __construct(
/** @var string */
public string $Code='',
/** @var string */
public string $Description='',
/** @var string */
public string $StandardFlag='',
/** @var float */
public float $Price=0.0,
/** @var string */
public string $Category='',
/** @var string */
public string $Importance=''
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Code'])) $this->Code = $o['Code'];
if (isset($o['Description'])) $this->Description = $o['Description'];
if (isset($o['StandardFlag'])) $this->StandardFlag = $o['StandardFlag'];
if (isset($o['Price'])) $this->Price = $o['Price'];
if (isset($o['Category'])) $this->Category = $o['Category'];
if (isset($o['Importance'])) $this->Importance = $o['Importance'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Code)) $o['Code'] = $this->Code;
if (isset($this->Description)) $o['Description'] = $this->Description;
if (isset($this->StandardFlag)) $o['StandardFlag'] = $this->StandardFlag;
if (isset($this->Price)) $o['Price'] = $this->Price;
if (isset($this->Category)) $o['Category'] = $this->Category;
if (isset($this->Importance)) $o['Importance'] = $this->Importance;
return empty($o) ? new class(){} : $o;
}
}
class OrderingOptions implements JsonSerializable
{
public function __construct(
/** @var array<string>|null */
public ?array $Interior=null,
/** @var array<string>|null */
public ?array $Exterior=null,
/** @var array<string>|null */
public ?array $Options=null,
/** @var array<EquipmentCache>|null */
public ?array $WheelOptions=null,
/** @var array<EquipmentCache>|null */
public ?array $TrimOptions=null,
/** @var array<EquipmentCache>|null */
public ?array $OptionCodes=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Interior'])) $this->Interior = JsonConverters::fromArray('string', $o['Interior']);
if (isset($o['Exterior'])) $this->Exterior = JsonConverters::fromArray('string', $o['Exterior']);
if (isset($o['Options'])) $this->Options = JsonConverters::fromArray('string', $o['Options']);
if (isset($o['WheelOptions'])) $this->WheelOptions = JsonConverters::fromArray('EquipmentCache', $o['WheelOptions']);
if (isset($o['TrimOptions'])) $this->TrimOptions = JsonConverters::fromArray('EquipmentCache', $o['TrimOptions']);
if (isset($o['OptionCodes'])) $this->OptionCodes = JsonConverters::fromArray('EquipmentCache', $o['OptionCodes']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Interior)) $o['Interior'] = JsonConverters::toArray('string', $this->Interior);
if (isset($this->Exterior)) $o['Exterior'] = JsonConverters::toArray('string', $this->Exterior);
if (isset($this->Options)) $o['Options'] = JsonConverters::toArray('string', $this->Options);
if (isset($this->WheelOptions)) $o['WheelOptions'] = JsonConverters::toArray('EquipmentCache', $this->WheelOptions);
if (isset($this->TrimOptions)) $o['TrimOptions'] = JsonConverters::toArray('EquipmentCache', $this->TrimOptions);
if (isset($this->OptionCodes)) $o['OptionCodes'] = JsonConverters::toArray('EquipmentCache', $this->OptionCodes);
return empty($o) ? new class(){} : $o;
}
}
class CarConfiguratorResponse implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Name=null,
/** @var KeyInformation|null */
public ?KeyInformation $KeyInformation=null,
/** @var OrderingOptions|null */
public ?OrderingOptions $OrderingOptions=null,
/** @var ResponseStatus|null */
public ?ResponseStatus $ResponseStatus=null,
/** @var string|null */
public ?string $ConfiguratorCode=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['KeyInformation'])) $this->KeyInformation = JsonConverters::from('KeyInformation', $o['KeyInformation']);
if (isset($o['OrderingOptions'])) $this->OrderingOptions = JsonConverters::from('OrderingOptions', $o['OrderingOptions']);
if (isset($o['ResponseStatus'])) $this->ResponseStatus = JsonConverters::from('ResponseStatus', $o['ResponseStatus']);
if (isset($o['ConfiguratorCode'])) $this->ConfiguratorCode = $o['ConfiguratorCode'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->KeyInformation)) $o['KeyInformation'] = JsonConverters::to('KeyInformation', $this->KeyInformation);
if (isset($this->OrderingOptions)) $o['OrderingOptions'] = JsonConverters::to('OrderingOptions', $this->OrderingOptions);
if (isset($this->ResponseStatus)) $o['ResponseStatus'] = JsonConverters::to('ResponseStatus', $this->ResponseStatus);
if (isset($this->ConfiguratorCode)) $o['ConfiguratorCode'] = $this->ConfiguratorCode;
return empty($o) ? new class(){} : $o;
}
}
class BackOrderVehicleDetailsBrand implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Description=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Description'])) $this->Description = $o['Description'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Description)) $o['Description'] = $this->Description;
return empty($o) ? new class(){} : $o;
}
}
class Engine implements JsonSerializable
{
public function __construct(
/** @var int */
public int $Id=0,
/** @var string|null */
public ?string $Badge=null,
/** @var int */
public int $CubicCapacity=0,
/** @var int */
public int $Cyclinders=0,
/** @var string|null */
public ?string $HorsePower=null,
/** @var string|null */
public ?string $Kw=null,
/** @var bool|null */
public ?bool $Selected=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['Badge'])) $this->Badge = $o['Badge'];
if (isset($o['CubicCapacity'])) $this->CubicCapacity = $o['CubicCapacity'];
if (isset($o['Cyclinders'])) $this->Cyclinders = $o['Cyclinders'];
if (isset($o['HorsePower'])) $this->HorsePower = $o['HorsePower'];
if (isset($o['Kw'])) $this->Kw = $o['Kw'];
if (isset($o['Selected'])) $this->Selected = $o['Selected'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->Badge)) $o['Badge'] = $this->Badge;
if (isset($this->CubicCapacity)) $o['CubicCapacity'] = $this->CubicCapacity;
if (isset($this->Cyclinders)) $o['Cyclinders'] = $this->Cyclinders;
if (isset($this->HorsePower)) $o['HorsePower'] = $this->HorsePower;
if (isset($this->Kw)) $o['Kw'] = $this->Kw;
if (isset($this->Selected)) $o['Selected'] = $this->Selected;
return empty($o) ? new class(){} : $o;
}
}
class VehicleAuditDetails implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $UserId=null,
/** @var bool|null */
public ?bool $Status=null,
/** @var string|null */
public ?string $Notes=null,
/** @var string|null */
public ?string $CreationDate=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['UserId'])) $this->UserId = $o['UserId'];
if (isset($o['Status'])) $this->Status = $o['Status'];
if (isset($o['Notes'])) $this->Notes = $o['Notes'];
if (isset($o['CreationDate'])) $this->CreationDate = $o['CreationDate'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->UserId)) $o['UserId'] = $this->UserId;
if (isset($this->Status)) $o['Status'] = $this->Status;
if (isset($this->Notes)) $o['Notes'] = $this->Notes;
if (isset($this->CreationDate)) $o['CreationDate'] = $this->CreationDate;
return empty($o) ? new class(){} : $o;
}
}
class RetailerService implements JsonSerializable
{
public function __construct(
/** @var int */
public int $Id=0,
/** @var string|null */
public ?string $Description=null,
/** @var bool|null */
public ?bool $Priority=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['Description'])) $this->Description = $o['Description'];
if (isset($o['Priority'])) $this->Priority = $o['Priority'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->Description)) $o['Description'] = $this->Description;
if (isset($this->Priority)) $o['Priority'] = $this->Priority;
return empty($o) ? new class(){} : $o;
}
}
class RetailerServices implements JsonSerializable
{
public function __construct(
/** @var array<RetailerService>|null */
public ?array $New=null,
/** @var array<RetailerService>|null */
public ?array $Used=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['New'])) $this->New = JsonConverters::fromArray('RetailerService', $o['New']);
if (isset($o['Used'])) $this->Used = JsonConverters::fromArray('RetailerService', $o['Used']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->New)) $o['New'] = JsonConverters::toArray('RetailerService', $this->New);
if (isset($this->Used)) $o['Used'] = JsonConverters::toArray('RetailerService', $this->Used);
return empty($o) ? new class(){} : $o;
}
}
class RetailerOpeningTime implements JsonSerializable
{
public function __construct(
/** @var string */
public string $Day='',
/** @var string */
public string $OpenFrom='',
/** @var string */
public string $OpenTo='',
/** @var string */
public string $Special=''
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Day'])) $this->Day = $o['Day'];
if (isset($o['OpenFrom'])) $this->OpenFrom = $o['OpenFrom'];
if (isset($o['OpenTo'])) $this->OpenTo = $o['OpenTo'];
if (isset($o['Special'])) $this->Special = $o['Special'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Day)) $o['Day'] = $this->Day;
if (isset($this->OpenFrom)) $o['OpenFrom'] = $this->OpenFrom;
if (isset($this->OpenTo)) $o['OpenTo'] = $this->OpenTo;
if (isset($this->Special)) $o['Special'] = $this->Special;
return empty($o) ? new class(){} : $o;
}
}
class RetailerOpeningTimes implements JsonSerializable
{
public function __construct(
/** @var array<RetailerOpeningTime>|null */
public ?array $New=null,
/** @var array<RetailerOpeningTime>|null */
public ?array $Used=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['New'])) $this->New = JsonConverters::fromArray('RetailerOpeningTime', $o['New']);
if (isset($o['Used'])) $this->Used = JsonConverters::fromArray('RetailerOpeningTime', $o['Used']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->New)) $o['New'] = JsonConverters::toArray('RetailerOpeningTime', $this->New);
if (isset($this->Used)) $o['Used'] = JsonConverters::toArray('RetailerOpeningTime', $this->Used);
return empty($o) ? new class(){} : $o;
}
}
class Retailer implements JsonSerializable
{
public function __construct(
/** @var int */
public int $Id=0,
/** @var string|null */
public ?string $GssnId=null,
/** @var string|null */
public ?string $Description=null,
/** @var string|null */
public ?string $Street=null,
/** @var string|null */
public ?string $City=null,
/** @var string|null */
public ?string $District=null,
/** @var string|null */
public ?string $Postcode=null,
/** @var string|null */
public ?string $GoogleMapPostcode=null,
/** @var string|null */
public ?string $Phone=null,
/** @var string|null */
public ?string $Fax=null,
/** @var string|null */
public ?string $Email=null,
/** @var string|null */
public ?string $Website=null,
/** @var float */
public float $Latitude=0.0,
/** @var float */
public float $Longitude=0.0,
/** @var int|null */
public ?int $RetailerGroup_Id=null,
/** @var string|null */
public ?string $RetailerGroupId=null,
/** @var string|null */
public ?string $RetailerGroupName=null,
/** @var float */
public float $Distance=0.0,
/** @var string|null */
public ?string $PaymentServiceGuid=null,
/** @var bool|null */
public ?bool $IsOnline=null,
/** @var bool|null */
public ?bool $IsNewCarRetailer=null,
/** @var bool|null */
public ?bool $IsUsedCarRetailer=null,
/** @var bool|null */
public ?bool $IsCentralRetailer=null,
/** @var bool|null */
public ?bool $ChatEnabled=null,
/** @var bool|null */
public ?bool $TradeInEnabled=null,
/** @var string|null */
public ?string $DisplayPhoneNumberNew=null,
/** @var string|null */
public ?string $DisplayPhoneNumberUsed=null,
/** @var RetailerServices|null */
public ?RetailerServices $Services=null,
/** @var bool|null */
public ?bool $smart=null,
/** @var string|null */
public ?string $smartDescription=null,
/** @var string|null */
public ?string $smartWebsite=null,
/** @var string|null */
public ?string $smartEmail=null,
/** @var string|null */
public ?string $smartPhone=null,
/** @var string|null */
public ?string $AdditionalInformation=null,
/** @var string|null */
public ?string $LegacyId=null,
/** @var float */
public float $DriveTime=0.0,
/** @var bool|null */
public ?bool $Agent=null,
/** @var int|null */
public ?int $Port=null,
/** @var string|null */
public ?string $PortName=null,
/** @var int|null */
public ?int $MarketAreaId=null,
/** @var string|null */
public ?string $MarketAreaName=null,
/** @var string|null */
public ?string $MaintenanceDate=null,
/** @var string|null */
public ?string $MaintenanceSource=null,
/** @var string|null */
public ?string $STPAccountNumbers=null,
/** @var bool|null */
public ?bool $CampaignExcluded=null,
/** @var string|null */
public ?string $DigitalLoungeParentGssnId=null,
/** @var bool|null */
public ?bool $SendLeadsToDigitalLoungeParent=null,
/** @var bool|null */
public ?bool $IsExcludedFromImport=null,
/** @var RetailerOpeningTimes|null */
public ?RetailerOpeningTimes $OpeningTimes=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['GssnId'])) $this->GssnId = $o['GssnId'];
if (isset($o['Description'])) $this->Description = $o['Description'];
if (isset($o['Street'])) $this->Street = $o['Street'];
if (isset($o['City'])) $this->City = $o['City'];
if (isset($o['District'])) $this->District = $o['District'];
if (isset($o['Postcode'])) $this->Postcode = $o['Postcode'];
if (isset($o['GoogleMapPostcode'])) $this->GoogleMapPostcode = $o['GoogleMapPostcode'];
if (isset($o['Phone'])) $this->Phone = $o['Phone'];
if (isset($o['Fax'])) $this->Fax = $o['Fax'];
if (isset($o['Email'])) $this->Email = $o['Email'];
if (isset($o['Website'])) $this->Website = $o['Website'];
if (isset($o['Latitude'])) $this->Latitude = $o['Latitude'];
if (isset($o['Longitude'])) $this->Longitude = $o['Longitude'];
if (isset($o['RetailerGroup_Id'])) $this->RetailerGroup_Id = $o['RetailerGroup_Id'];
if (isset($o['RetailerGroupId'])) $this->RetailerGroupId = $o['RetailerGroupId'];
if (isset($o['RetailerGroupName'])) $this->RetailerGroupName = $o['RetailerGroupName'];
if (isset($o['Distance'])) $this->Distance = $o['Distance'];
if (isset($o['PaymentServiceGuid'])) $this->PaymentServiceGuid = $o['PaymentServiceGuid'];
if (isset($o['IsOnline'])) $this->IsOnline = $o['IsOnline'];
if (isset($o['IsNewCarRetailer'])) $this->IsNewCarRetailer = $o['IsNewCarRetailer'];
if (isset($o['IsUsedCarRetailer'])) $this->IsUsedCarRetailer = $o['IsUsedCarRetailer'];
if (isset($o['IsCentralRetailer'])) $this->IsCentralRetailer = $o['IsCentralRetailer'];
if (isset($o['ChatEnabled'])) $this->ChatEnabled = $o['ChatEnabled'];
if (isset($o['TradeInEnabled'])) $this->TradeInEnabled = $o['TradeInEnabled'];
if (isset($o['DisplayPhoneNumberNew'])) $this->DisplayPhoneNumberNew = $o['DisplayPhoneNumberNew'];
if (isset($o['DisplayPhoneNumberUsed'])) $this->DisplayPhoneNumberUsed = $o['DisplayPhoneNumberUsed'];
if (isset($o['Services'])) $this->Services = JsonConverters::from('RetailerServices', $o['Services']);
if (isset($o['smart'])) $this->smart = $o['smart'];
if (isset($o['smartDescription'])) $this->smartDescription = $o['smartDescription'];
if (isset($o['smartWebsite'])) $this->smartWebsite = $o['smartWebsite'];
if (isset($o['smartEmail'])) $this->smartEmail = $o['smartEmail'];
if (isset($o['smartPhone'])) $this->smartPhone = $o['smartPhone'];
if (isset($o['AdditionalInformation'])) $this->AdditionalInformation = $o['AdditionalInformation'];
if (isset($o['LegacyId'])) $this->LegacyId = $o['LegacyId'];
if (isset($o['DriveTime'])) $this->DriveTime = $o['DriveTime'];
if (isset($o['Agent'])) $this->Agent = $o['Agent'];
if (isset($o['Port'])) $this->Port = $o['Port'];
if (isset($o['PortName'])) $this->PortName = $o['PortName'];
if (isset($o['MarketAreaId'])) $this->MarketAreaId = $o['MarketAreaId'];
if (isset($o['MarketAreaName'])) $this->MarketAreaName = $o['MarketAreaName'];
if (isset($o['MaintenanceDate'])) $this->MaintenanceDate = $o['MaintenanceDate'];
if (isset($o['MaintenanceSource'])) $this->MaintenanceSource = $o['MaintenanceSource'];
if (isset($o['STPAccountNumbers'])) $this->STPAccountNumbers = $o['STPAccountNumbers'];
if (isset($o['CampaignExcluded'])) $this->CampaignExcluded = $o['CampaignExcluded'];
if (isset($o['DigitalLoungeParentGssnId'])) $this->DigitalLoungeParentGssnId = $o['DigitalLoungeParentGssnId'];
if (isset($o['SendLeadsToDigitalLoungeParent'])) $this->SendLeadsToDigitalLoungeParent = $o['SendLeadsToDigitalLoungeParent'];
if (isset($o['IsExcludedFromImport'])) $this->IsExcludedFromImport = $o['IsExcludedFromImport'];
if (isset($o['OpeningTimes'])) $this->OpeningTimes = JsonConverters::from('RetailerOpeningTimes', $o['OpeningTimes']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->GssnId)) $o['GssnId'] = $this->GssnId;
if (isset($this->Description)) $o['Description'] = $this->Description;
if (isset($this->Street)) $o['Street'] = $this->Street;
if (isset($this->City)) $o['City'] = $this->City;
if (isset($this->District)) $o['District'] = $this->District;
if (isset($this->Postcode)) $o['Postcode'] = $this->Postcode;
if (isset($this->GoogleMapPostcode)) $o['GoogleMapPostcode'] = $this->GoogleMapPostcode;
if (isset($this->Phone)) $o['Phone'] = $this->Phone;
if (isset($this->Fax)) $o['Fax'] = $this->Fax;
if (isset($this->Email)) $o['Email'] = $this->Email;
if (isset($this->Website)) $o['Website'] = $this->Website;
if (isset($this->Latitude)) $o['Latitude'] = $this->Latitude;
if (isset($this->Longitude)) $o['Longitude'] = $this->Longitude;
if (isset($this->RetailerGroup_Id)) $o['RetailerGroup_Id'] = $this->RetailerGroup_Id;
if (isset($this->RetailerGroupId)) $o['RetailerGroupId'] = $this->RetailerGroupId;
if (isset($this->RetailerGroupName)) $o['RetailerGroupName'] = $this->RetailerGroupName;
if (isset($this->Distance)) $o['Distance'] = $this->Distance;
if (isset($this->PaymentServiceGuid)) $o['PaymentServiceGuid'] = $this->PaymentServiceGuid;
if (isset($this->IsOnline)) $o['IsOnline'] = $this->IsOnline;
if (isset($this->IsNewCarRetailer)) $o['IsNewCarRetailer'] = $this->IsNewCarRetailer;
if (isset($this->IsUsedCarRetailer)) $o['IsUsedCarRetailer'] = $this->IsUsedCarRetailer;
if (isset($this->IsCentralRetailer)) $o['IsCentralRetailer'] = $this->IsCentralRetailer;
if (isset($this->ChatEnabled)) $o['ChatEnabled'] = $this->ChatEnabled;
if (isset($this->TradeInEnabled)) $o['TradeInEnabled'] = $this->TradeInEnabled;
if (isset($this->DisplayPhoneNumberNew)) $o['DisplayPhoneNumberNew'] = $this->DisplayPhoneNumberNew;
if (isset($this->DisplayPhoneNumberUsed)) $o['DisplayPhoneNumberUsed'] = $this->DisplayPhoneNumberUsed;
if (isset($this->Services)) $o['Services'] = JsonConverters::to('RetailerServices', $this->Services);
if (isset($this->smart)) $o['smart'] = $this->smart;
if (isset($this->smartDescription)) $o['smartDescription'] = $this->smartDescription;
if (isset($this->smartWebsite)) $o['smartWebsite'] = $this->smartWebsite;
if (isset($this->smartEmail)) $o['smartEmail'] = $this->smartEmail;
if (isset($this->smartPhone)) $o['smartPhone'] = $this->smartPhone;
if (isset($this->AdditionalInformation)) $o['AdditionalInformation'] = $this->AdditionalInformation;
if (isset($this->LegacyId)) $o['LegacyId'] = $this->LegacyId;
if (isset($this->DriveTime)) $o['DriveTime'] = $this->DriveTime;
if (isset($this->Agent)) $o['Agent'] = $this->Agent;
if (isset($this->Port)) $o['Port'] = $this->Port;
if (isset($this->PortName)) $o['PortName'] = $this->PortName;
if (isset($this->MarketAreaId)) $o['MarketAreaId'] = $this->MarketAreaId;
if (isset($this->MarketAreaName)) $o['MarketAreaName'] = $this->MarketAreaName;
if (isset($this->MaintenanceDate)) $o['MaintenanceDate'] = $this->MaintenanceDate;
if (isset($this->MaintenanceSource)) $o['MaintenanceSource'] = $this->MaintenanceSource;
if (isset($this->STPAccountNumbers)) $o['STPAccountNumbers'] = $this->STPAccountNumbers;
if (isset($this->CampaignExcluded)) $o['CampaignExcluded'] = $this->CampaignExcluded;
if (isset($this->DigitalLoungeParentGssnId)) $o['DigitalLoungeParentGssnId'] = $this->DigitalLoungeParentGssnId;
if (isset($this->SendLeadsToDigitalLoungeParent)) $o['SendLeadsToDigitalLoungeParent'] = $this->SendLeadsToDigitalLoungeParent;
if (isset($this->IsExcludedFromImport)) $o['IsExcludedFromImport'] = $this->IsExcludedFromImport;
if (isset($this->OpeningTimes)) $o['OpeningTimes'] = JsonConverters::to('RetailerOpeningTimes', $this->OpeningTimes);
return empty($o) ? new class(){} : $o;
}
}
class Media implements JsonSerializable
{
public function __construct(
/** @var int */
public int $ImageCount=0,
/** @var string|null */
public ?string $MainImageUrl=null,
/** @var string|null */
public ?string $MainImageUrlMobile=null,
/** @var bool|null */
public ?bool $NoImage=null,
/** @var string[]|null */
public ?array $ThreeSixtyDegreeImageUrls=null,
/** @var string[]|null */
public ?array $ThreeSixtyDegreeMobileImageUrls=null,
/** @var string[]|null */
public ?array $VehicleImageUrls=null,
/** @var string[]|null */
public ?array $VehicleMobileImageUrls=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ImageCount'])) $this->ImageCount = $o['ImageCount'];
if (isset($o['MainImageUrl'])) $this->MainImageUrl = $o['MainImageUrl'];
if (isset($o['MainImageUrlMobile'])) $this->MainImageUrlMobile = $o['MainImageUrlMobile'];
if (isset($o['NoImage'])) $this->NoImage = $o['NoImage'];
if (isset($o['ThreeSixtyDegreeImageUrls'])) $this->ThreeSixtyDegreeImageUrls = JsonConverters::fromArray('string', $o['ThreeSixtyDegreeImageUrls']);
if (isset($o['ThreeSixtyDegreeMobileImageUrls'])) $this->ThreeSixtyDegreeMobileImageUrls = JsonConverters::fromArray('string', $o['ThreeSixtyDegreeMobileImageUrls']);
if (isset($o['VehicleImageUrls'])) $this->VehicleImageUrls = JsonConverters::fromArray('string', $o['VehicleImageUrls']);
if (isset($o['VehicleMobileImageUrls'])) $this->VehicleMobileImageUrls = JsonConverters::fromArray('string', $o['VehicleMobileImageUrls']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ImageCount)) $o['ImageCount'] = $this->ImageCount;
if (isset($this->MainImageUrl)) $o['MainImageUrl'] = $this->MainImageUrl;
if (isset($this->MainImageUrlMobile)) $o['MainImageUrlMobile'] = $this->MainImageUrlMobile;
if (isset($this->NoImage)) $o['NoImage'] = $this->NoImage;
if (isset($this->ThreeSixtyDegreeImageUrls)) $o['ThreeSixtyDegreeImageUrls'] = JsonConverters::toArray('string', $this->ThreeSixtyDegreeImageUrls);
if (isset($this->ThreeSixtyDegreeMobileImageUrls)) $o['ThreeSixtyDegreeMobileImageUrls'] = JsonConverters::toArray('string', $this->ThreeSixtyDegreeMobileImageUrls);
if (isset($this->VehicleImageUrls)) $o['VehicleImageUrls'] = JsonConverters::toArray('string', $this->VehicleImageUrls);
if (isset($this->VehicleMobileImageUrls)) $o['VehicleMobileImageUrls'] = JsonConverters::toArray('string', $this->VehicleMobileImageUrls);
return empty($o) ? new class(){} : $o;
}
}
enum OfferPriceProductType : string
{
case LIST_PRICE = 'LIST_PRICE';
case NUMBER_PLATE_FEE = 'NUMBER_PLATE_FEE';
case DELIVERY_CHARGE = 'DELIVERY_CHARGE';
case FUEL_CHARGE = 'FUEL_CHARGE';
case MANUFACTURER_OFFER = 'MANUFACTURER_OFFER';
case PERSONALISED_MONEYOFFER = 'PERSONALISED_MONEYOFFER';
case PERSONALISED_NONMONEYOFFER = 'PERSONALISED_NONMONEYOFFER';
case PERSONALISED_NONMONEYOFFER_NEG = 'PERSONALISED_NONMONEYOFFER_NEG';
case SERVICE = 'SERVICE';
case SERVICE_NEG = 'SERVICE_NEG';
case GOVERNMENT_GRANT = 'GOVERNMENT_GRANT';
case OUTRIGHT_PURCHASE_DISCOUNT = 'OUTRIGHT_PURCHASE_DISCOUNT';
case VIP_OFFER = 'VIP_OFFER';
case WALLBOX_OFFER = 'WALLBOX_OFFER';
case WALLBOX_OFFER_NEG = 'WALLBOX_OFFER_NEG';
case ROAD_FUND_LICENCE = 'ROAD_FUND_LICENCE';
case FIRST_REGISTRATION_FEE = 'FIRST_REGISTRATION_FEE';
case NOT_FOUND = 'NOT_FOUND';
case ACCESSORY_OFFER = 'ACCESSORY_OFFER';
case ACCESSORY_OFFER_NEG = 'ACCESSORY_OFFER_NEG';
case MOTABILITY_DISCOUNT = 'MOTABILITY_DISCOUNT';
}
class Price implements JsonSerializable
{
public function __construct(
/** @var string */
public string $Id='',
/** @var string */
public string $Description='',
/** @var float */
public float $Net=0.0,
/** @var float */
public float $VAT=0.0,
/** @var float */
public float $Gross=0.0,
/** @var OfferPriceProductType|null */
public ?OfferPriceProductType $Product=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['Description'])) $this->Description = $o['Description'];
if (isset($o['Net'])) $this->Net = $o['Net'];
if (isset($o['VAT'])) $this->VAT = $o['VAT'];
if (isset($o['Gross'])) $this->Gross = $o['Gross'];
if (isset($o['Product'])) $this->Product = JsonConverters::from('OfferPriceProductType', $o['Product']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->Description)) $o['Description'] = $this->Description;
if (isset($this->Net)) $o['Net'] = $this->Net;
if (isset($this->VAT)) $o['VAT'] = $this->VAT;
if (isset($this->Gross)) $o['Gross'] = $this->Gross;
if (isset($this->Product)) $o['Product'] = JsonConverters::to('OfferPriceProductType', $this->Product);
return empty($o) ? new class(){} : $o;
}
}
class Consumption implements JsonSerializable
{
public function __construct(
/** @var int */
public int $Id=0,
/** @var float */
public float $Lkm=0.0,
/** @var float */
public float $Mpg=0.0
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['Lkm'])) $this->Lkm = $o['Lkm'];
if (isset($o['Mpg'])) $this->Mpg = $o['Mpg'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->Lkm)) $o['Lkm'] = $this->Lkm;
if (isset($this->Mpg)) $o['Mpg'] = $this->Mpg;
return empty($o) ? new class(){} : $o;
}
}
class EmissionClass implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Colour=null,
/** @var string|null */
public ?string $Rating=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Colour'])) $this->Colour = $o['Colour'];
if (isset($o['Rating'])) $this->Rating = $o['Rating'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Colour)) $o['Colour'] = $this->Colour;
if (isset($this->Rating)) $o['Rating'] = $this->Rating;
return empty($o) ? new class(){} : $o;
}
}
class Equipment implements JsonSerializable
{
public function __construct(
/** @var int|null */
public ?int $Id=null,
/** @var string|null */
public ?string $Code=null,
/** @var string|null */
public ?string $Description=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['Code'])) $this->Code = $o['Code'];
if (isset($o['Description'])) $this->Description = $o['Description'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->Code)) $o['Code'] = $this->Code;
if (isset($this->Description)) $o['Description'] = $this->Description;
return empty($o) ? new class(){} : $o;
}
}
class Equipmentv2 extends Equipment implements JsonSerializable
{
/**
* @param int|null $Id
* @param string|null $Code
* @param string|null $Description
*/
public function __construct(
?int $Id=null,
?string $Code=null,
?string $Description=null,
/** @var int */
public int $Importance=0,
/** @var bool|null */
public ?bool $IsAdditional=null
) {
parent::__construct($Id,$Code,$Description);
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Importance'])) $this->Importance = $o['Importance'];
if (isset($o['IsAdditional'])) $this->IsAdditional = $o['IsAdditional'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Importance)) $o['Importance'] = $this->Importance;
if (isset($this->IsAdditional)) $o['IsAdditional'] = $this->IsAdditional;
return empty($o) ? new class(){} : $o;
}
}
class EquipmentCategoryv2 implements JsonSerializable
{
public function __construct(
/** @var int */
public int $Order=0,
/** @var string|null */
public ?string $Code=null,
/** @var string|null */
public ?string $Description=null,
/** @var array<Equipmentv2>|null */
public ?array $Equipment=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Order'])) $this->Order = $o['Order'];
if (isset($o['Code'])) $this->Code = $o['Code'];
if (isset($o['Description'])) $this->Description = $o['Description'];
if (isset($o['Equipment'])) $this->Equipment = JsonConverters::fromArray('Equipmentv2', $o['Equipment']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Order)) $o['Order'] = $this->Order;
if (isset($this->Code)) $o['Code'] = $this->Code;
if (isset($this->Description)) $o['Description'] = $this->Description;
if (isset($this->Equipment)) $o['Equipment'] = JsonConverters::toArray('Equipmentv2', $this->Equipment);
return empty($o) ? new class(){} : $o;
}
}
class VehicleAttribute implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Description=null,
/** @var string|null */
public ?string $Value=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Description'])) $this->Description = $o['Description'];
if (isset($o['Value'])) $this->Value = $o['Value'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Description)) $o['Description'] = $this->Description;
if (isset($this->Value)) $o['Value'] = $this->Value;
return empty($o) ? new class(){} : $o;
}
}
class IntegratedServiceCareOptions implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $OptionCode=null,
/** @var string|null */
public ?string $BM7NST=null,
/** @var string|null */
public ?string $FullModelYear=null,
/** @var string|null */
public ?string $IntegratedProductType=null,
/** @var string|null */
public ?string $CustomerDescription=null,
/** @var string|null */
public ?string $OneAgentProductType=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['OptionCode'])) $this->OptionCode = $o['OptionCode'];
if (isset($o['BM7NST'])) $this->BM7NST = $o['BM7NST'];
if (isset($o['FullModelYear'])) $this->FullModelYear = $o['FullModelYear'];
if (isset($o['IntegratedProductType'])) $this->IntegratedProductType = $o['IntegratedProductType'];
if (isset($o['CustomerDescription'])) $this->CustomerDescription = $o['CustomerDescription'];
if (isset($o['OneAgentProductType'])) $this->OneAgentProductType = $o['OneAgentProductType'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->OptionCode)) $o['OptionCode'] = $this->OptionCode;
if (isset($this->BM7NST)) $o['BM7NST'] = $this->BM7NST;
if (isset($this->FullModelYear)) $o['FullModelYear'] = $this->FullModelYear;
if (isset($this->IntegratedProductType)) $o['IntegratedProductType'] = $this->IntegratedProductType;
if (isset($this->CustomerDescription)) $o['CustomerDescription'] = $this->CustomerDescription;
if (isset($this->OneAgentProductType)) $o['OneAgentProductType'] = $this->OneAgentProductType;
return empty($o) ? new class(){} : $o;
}
}
class BackOrderVehicleDetails implements IVehiclePrices, IVehiclePriceCollection, IImageUrl, IVehicleDetails, JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Vin=null,
/** @var string|null */
public ?string $CommissionNumber=null,
/** @var string|null */
public ?string $Description=null,
/** @var string|null */
public ?string $ShortDescription=null,
/** @var int */
public int $ModelId=0,
/** @var string|null */
public ?string $Model=null,
/** @var string|null */
public ?string $FullModelYearCode=null,
/** @var int|null */
public ?int $BrandId=null,
/** @var BackOrderVehicleDetailsBrand|null */
public ?BackOrderVehicleDetailsBrand $Brand=null,
/** @var int */
public int $RetailerId=0,
/** @var string|null */
public ?string $ImageUrl=null,
/** @var string|null */
public ?string $Colour=null,
/** @var string|null */
public ?string $ColourCode=null,
/** @var string|null */
public ?string $FuelType=null,
/** @var int */
public int $FuelTypeId=0,
/** @var string|null */
public ?string $Transmission=null,
/** @var string|null */
public ?string $TransmissionType=null,
/** @var Engine|null */
public ?Engine $Engine=null,
/** @var string|null */
public ?string $EngineBadge=null,
/** @var string|null */
public ?string $Package=null,
/** @var string|null */
public ?string $Line=null,
/** @var string|null */
public ?string $Upholstery=null,
/** @var string|null */
public ?string $UpholsteryCode=null,
/** @var string|null */
public ?string $UsageCode=null,
/** @var string|null */
public ?string $Account=null,
/** @var string|null */
public ?string $AccountType=null,
/** @var string|null */
public ?string $NST=null,
/** @var string|null */
public ?string $Baumuster=null,
/** @var float|null */
public ?float $ElectricRange=null,
/** @var float|null */
public ?float $ElectricConsumption=null,
/** @var float|null */
public ?float $ActualPrice=null,
/** @var float */
public float $OTRPrice=0.0,
/** @var float */
public float $RetailPriceExVat=0.0,
/** @var float */
public float $P11D=0.0,
/** @var string|null */
public ?string $VehicleType=null,
/** @var string|null */
public ?string $UpholsteryDescription=null,
/** @var string|null */
public ?string $UpholsteryType=null,
/** @var string|null */
public ?string $BodyStyle=null,
/** @var string|null */
public ?string $BodyStyleStyleCode=null,
/** @var string|null */
public ?string $BodyStyleStyleCodeElectric=null,
/** @var string|null */
public ?string $BodyStyleStyleCodeHybrid=null,
/** @var array<string>|null */
public ?array $AvailablePackages=null,
/** @var int|null */
public ?int $Mapped_Line=null,
/** @var bool|null */
public ?bool $Secured=null,
/** @var string|null */
public ?string $Bm7NST=null,
/** @var bool|null */
public ?bool $IsAvailableOnline=null,
/** @var bool|null */
public ?bool $IsSpecialistCar=null,
/** @var bool|null */
public ?bool $IsSellable=null,
/** @var bool|null */
public ?bool $UnderOffer=null,
/** @var array<VehicleAuditDetails>|null */
public ?array $VehicleAuditDetails=null,
/** @var Retailer|null */
public ?Retailer $Retailer=null,
/** @var Media|null */
public ?Media $Media=null,
/** @var float|null */
public ?float $Emission=null,
/** @var string|null */
public ?string $ColourGroup=null,
/** @var string|null */
public ?string $VehicleClass=null,
/** @var string|null */
public ?string $ProductRange=null,
/** @var bool|null */
public ?bool $IsHOBackOrderAccountVehicle=null,
/** @var bool|null */
public ?bool $IsAllocatedToBackOrder=null,
/** @var bool|null */
public ?bool $InBackOrderAccount=null,
/** @var float */
public float $DeliveryCharge=0.0,
/** @var float|null */
public ?float $DeliveryChargeNet=null,
/** @var float|null */
public ?float $DeliveryChargeVAT=null,
/** @var float */
public float $Plates=0.0,
/** @var float|null */
public ?float $PlatesNet=null,
/** @var float|null */
public ?float $PlatesVAT=null,
/** @var float */
public float $FuelCharge=0.0,
/** @var float|null */
public ?float $FuelChargeNet=null,
/** @var float|null */
public ?float $FuelChargeVAT=null,
/** @var float */
public float $RetailPrice_ExVAT=0.0,
/** @var float */
public float $RetailPrice_IncVAT=0.0,
/** @var float */
public float $VED_Year1=0.0,
/** @var float */
public float $VED_Year2=0.0,
/** @var float */
public float $FirstRegFee=0.0,
/** @var float */
public float $OTR_Value=0.0,
/** @var float */
public float $OTR=0.0,
/** @var array<Price>|null */
public ?array $Prices=null,
/** @var string|null */
public ?string $ProductionDate=null,
/** @var DateTime|null */
public ?DateTime $PortArrivalDate=null,
/** @var string|null */
public ?string $Location=null,
/** @var bool|null */
public ?bool $IsDisplayStock=null,
/** @var int|null */
public ?int $DisplayRetailerId=null,
/** @var string|null */
public ?string $DisplayRetailer=null,
/** @var string|null */
public ?string $DisplayRetailerGssnId=null,
/** @var int|null */
public ?int $DisplayRetailerMarketAreaId=null,
/** @var bool|null */
public ?bool $IsSmartDisplayRetailer=null,
/** @var string|null */
public ?string $ColourDescription=null,
/** @var DateTime|null */
public ?DateTime $Creation=null,
/** @var DateTime|null */
public ?DateTime $Modified=null,
/** @var int|null */
public ?int $VATQualifyingNumber=null,
/** @var bool|null */
public ?bool $VATQualifying=null,
/** @var float */
public float $CurrentRetailerOfferPrice=0.0,
/** @var string|null */
public ?string $GssnId=null,
/** @var bool|null */
public ?bool $NoImage=null,
/** @var string|null */
public ?string $RegistrationNumber=null,
/** @var DateTime|null */
public ?DateTime $RegistrationDate=null,
/** @var int|null */
public ?int $Mileage=null,
/** @var DateTime|null */
public ?DateTime $TradeInDate=null,
/** @var string|null */
public ?string $VID=null,
/** @var string|null */
public ?string $EmissionCombined=null,
/** @var string|null */
public ?string $EmissionDirective=null,
/** @var string|null */
public ?string $NormalisedEmissionDirective=null,
/** @var bool|null */
public ?bool $HasMildHybridEquipmentCode=null,
/** @var float|null */
public ?float $Acceleration=null,
/** @var string|null */
public ?string $ChassisNumber=null,
/** @var string|null */
public ?string $NumberOfDoors=null,
/** @var string|null */
public ?string $NumberOfSeats=null,
/** @var bool|null */
public ?bool $SpecialInfo=null,
/** @var bool|null */
public ?bool $EligibleForIntegratedServiceCare=null,
/** @var Consumption|null */
public ?Consumption $ConsumptionCombined=null,
/** @var Consumption|null */
public ?Consumption $ConsumptionExtraUrban=null,
/** @var Consumption|null */
public ?Consumption $ConsumptionUrban=null,
/** @var Consumption|null */
public ?Consumption $WltpFuelConsumptionCombined=null,
/** @var Consumption|null */
public ?Consumption $WltpFuelConsumptionExtraHigh=null,
/** @var Consumption|null */
public ?Consumption $WltpFuelConsumptionHigh=null,
/** @var Consumption|null */
public ?Consumption $WltpFuelConsumptionLow=null,
/** @var Consumption|null */
public ?Consumption $WltpFuelConsumptionMedium=null,
/** @var EmissionClass|null */
public ?EmissionClass $EnergyEfficiencyClass=null,
/** @var array<Equipmentv2>|null */
public ?array $Equipment=null,
/** @var array<Equipment>|null */
public ?array $EquipmentAdditional=null,
/** @var array<EquipmentCategoryv2>|null */
public ?array $EquipmentCategories=null,
/** @var array<VehicleAttribute>|null */
public ?array $VehicleData=null,
/** @var array<IntegratedServiceCareOptions>|null */
public ?array $IntegratedServiceCareOptions=null,
/** @var array<string>|null */
public ?array $IspVehicleCustomerDescriptions=null,
/** @var string|null */
public ?string $MarketingCode=null,
/** @var bool|null */
public ?bool $EligibleForMaTransfer=null,
/** @var string|null */
public ?string $ConfirmedProductionDate=null,
/** @var string|null */
public ?string $ForecastedArrivalDate=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Vin'])) $this->Vin = $o['Vin'];
if (isset($o['CommissionNumber'])) $this->CommissionNumber = $o['CommissionNumber'];
if (isset($o['Description'])) $this->Description = $o['Description'];
if (isset($o['ShortDescription'])) $this->ShortDescription = $o['ShortDescription'];
if (isset($o['ModelId'])) $this->ModelId = $o['ModelId'];
if (isset($o['Model'])) $this->Model = $o['Model'];
if (isset($o['FullModelYearCode'])) $this->FullModelYearCode = $o['FullModelYearCode'];
if (isset($o['BrandId'])) $this->BrandId = $o['BrandId'];
if (isset($o['Brand'])) $this->Brand = JsonConverters::from('BackOrderVehicleDetailsBrand', $o['Brand']);
if (isset($o['RetailerId'])) $this->RetailerId = $o['RetailerId'];
if (isset($o['ImageUrl'])) $this->ImageUrl = $o['ImageUrl'];
if (isset($o['Colour'])) $this->Colour = $o['Colour'];
if (isset($o['ColourCode'])) $this->ColourCode = $o['ColourCode'];
if (isset($o['FuelType'])) $this->FuelType = $o['FuelType'];
if (isset($o['FuelTypeId'])) $this->FuelTypeId = $o['FuelTypeId'];
if (isset($o['Transmission'])) $this->Transmission = $o['Transmission'];
if (isset($o['TransmissionType'])) $this->TransmissionType = $o['TransmissionType'];
if (isset($o['Engine'])) $this->Engine = JsonConverters::from('Engine', $o['Engine']);
if (isset($o['EngineBadge'])) $this->EngineBadge = $o['EngineBadge'];
if (isset($o['Package'])) $this->Package = $o['Package'];
if (isset($o['Line'])) $this->Line = $o['Line'];
if (isset($o['Upholstery'])) $this->Upholstery = $o['Upholstery'];
if (isset($o['UpholsteryCode'])) $this->UpholsteryCode = $o['UpholsteryCode'];
if (isset($o['UsageCode'])) $this->UsageCode = $o['UsageCode'];
if (isset($o['Account'])) $this->Account = $o['Account'];
if (isset($o['AccountType'])) $this->AccountType = $o['AccountType'];
if (isset($o['NST'])) $this->NST = $o['NST'];
if (isset($o['Baumuster'])) $this->Baumuster = $o['Baumuster'];
if (isset($o['ElectricRange'])) $this->ElectricRange = $o['ElectricRange'];
if (isset($o['ElectricConsumption'])) $this->ElectricConsumption = $o['ElectricConsumption'];
if (isset($o['ActualPrice'])) $this->ActualPrice = $o['ActualPrice'];
if (isset($o['OTRPrice'])) $this->OTRPrice = $o['OTRPrice'];
if (isset($o['RetailPriceExVat'])) $this->RetailPriceExVat = $o['RetailPriceExVat'];
if (isset($o['P11D'])) $this->P11D = $o['P11D'];
if (isset($o['VehicleType'])) $this->VehicleType = $o['VehicleType'];
if (isset($o['UpholsteryDescription'])) $this->UpholsteryDescription = $o['UpholsteryDescription'];
if (isset($o['UpholsteryType'])) $this->UpholsteryType = $o['UpholsteryType'];
if (isset($o['BodyStyle'])) $this->BodyStyle = $o['BodyStyle'];
if (isset($o['BodyStyleStyleCode'])) $this->BodyStyleStyleCode = $o['BodyStyleStyleCode'];
if (isset($o['BodyStyleStyleCodeElectric'])) $this->BodyStyleStyleCodeElectric = $o['BodyStyleStyleCodeElectric'];
if (isset($o['BodyStyleStyleCodeHybrid'])) $this->BodyStyleStyleCodeHybrid = $o['BodyStyleStyleCodeHybrid'];
if (isset($o['AvailablePackages'])) $this->AvailablePackages = JsonConverters::fromArray('string', $o['AvailablePackages']);
if (isset($o['Mapped_Line'])) $this->Mapped_Line = $o['Mapped_Line'];
if (isset($o['Secured'])) $this->Secured = $o['Secured'];
if (isset($o['Bm7NST'])) $this->Bm7NST = $o['Bm7NST'];
if (isset($o['IsAvailableOnline'])) $this->IsAvailableOnline = $o['IsAvailableOnline'];
if (isset($o['IsSpecialistCar'])) $this->IsSpecialistCar = $o['IsSpecialistCar'];
if (isset($o['IsSellable'])) $this->IsSellable = $o['IsSellable'];
if (isset($o['UnderOffer'])) $this->UnderOffer = $o['UnderOffer'];
if (isset($o['VehicleAuditDetails'])) $this->VehicleAuditDetails = JsonConverters::fromArray('VehicleAuditDetails', $o['VehicleAuditDetails']);
if (isset($o['Retailer'])) $this->Retailer = JsonConverters::from('Retailer', $o['Retailer']);
if (isset($o['Media'])) $this->Media = JsonConverters::from('Media', $o['Media']);
if (isset($o['Emission'])) $this->Emission = $o['Emission'];
if (isset($o['ColourGroup'])) $this->ColourGroup = $o['ColourGroup'];
if (isset($o['VehicleClass'])) $this->VehicleClass = $o['VehicleClass'];
if (isset($o['ProductRange'])) $this->ProductRange = $o['ProductRange'];
if (isset($o['IsHOBackOrderAccountVehicle'])) $this->IsHOBackOrderAccountVehicle = $o['IsHOBackOrderAccountVehicle'];
if (isset($o['IsAllocatedToBackOrder'])) $this->IsAllocatedToBackOrder = $o['IsAllocatedToBackOrder'];
if (isset($o['InBackOrderAccount'])) $this->InBackOrderAccount = $o['InBackOrderAccount'];
if (isset($o['DeliveryCharge'])) $this->DeliveryCharge = $o['DeliveryCharge'];
if (isset($o['DeliveryChargeNet'])) $this->DeliveryChargeNet = $o['DeliveryChargeNet'];
if (isset($o['DeliveryChargeVAT'])) $this->DeliveryChargeVAT = $o['DeliveryChargeVAT'];
if (isset($o['Plates'])) $this->Plates = $o['Plates'];
if (isset($o['PlatesNet'])) $this->PlatesNet = $o['PlatesNet'];
if (isset($o['PlatesVAT'])) $this->PlatesVAT = $o['PlatesVAT'];
if (isset($o['FuelCharge'])) $this->FuelCharge = $o['FuelCharge'];
if (isset($o['FuelChargeNet'])) $this->FuelChargeNet = $o['FuelChargeNet'];
if (isset($o['FuelChargeVAT'])) $this->FuelChargeVAT = $o['FuelChargeVAT'];
if (isset($o['RetailPrice_ExVAT'])) $this->RetailPrice_ExVAT = $o['RetailPrice_ExVAT'];
if (isset($o['RetailPrice_IncVAT'])) $this->RetailPrice_IncVAT = $o['RetailPrice_IncVAT'];
if (isset($o['VED_Year1'])) $this->VED_Year1 = $o['VED_Year1'];
if (isset($o['VED_Year2'])) $this->VED_Year2 = $o['VED_Year2'];
if (isset($o['FirstRegFee'])) $this->FirstRegFee = $o['FirstRegFee'];
if (isset($o['OTR_Value'])) $this->OTR_Value = $o['OTR_Value'];
if (isset($o['OTR'])) $this->OTR = $o['OTR'];
if (isset($o['Prices'])) $this->Prices = JsonConverters::fromArray('Price', $o['Prices']);
if (isset($o['ProductionDate'])) $this->ProductionDate = $o['ProductionDate'];
if (isset($o['PortArrivalDate'])) $this->PortArrivalDate = JsonConverters::from('DateTime', $o['PortArrivalDate']);
if (isset($o['Location'])) $this->Location = $o['Location'];
if (isset($o['IsDisplayStock'])) $this->IsDisplayStock = $o['IsDisplayStock'];
if (isset($o['DisplayRetailerId'])) $this->DisplayRetailerId = $o['DisplayRetailerId'];
if (isset($o['DisplayRetailer'])) $this->DisplayRetailer = $o['DisplayRetailer'];
if (isset($o['DisplayRetailerGssnId'])) $this->DisplayRetailerGssnId = $o['DisplayRetailerGssnId'];
if (isset($o['DisplayRetailerMarketAreaId'])) $this->DisplayRetailerMarketAreaId = $o['DisplayRetailerMarketAreaId'];
if (isset($o['IsSmartDisplayRetailer'])) $this->IsSmartDisplayRetailer = $o['IsSmartDisplayRetailer'];
if (isset($o['ColourDescription'])) $this->ColourDescription = $o['ColourDescription'];
if (isset($o['Creation'])) $this->Creation = JsonConverters::from('DateTime', $o['Creation']);
if (isset($o['Modified'])) $this->Modified = JsonConverters::from('DateTime', $o['Modified']);
if (isset($o['VATQualifyingNumber'])) $this->VATQualifyingNumber = $o['VATQualifyingNumber'];
if (isset($o['VATQualifying'])) $this->VATQualifying = $o['VATQualifying'];
if (isset($o['CurrentRetailerOfferPrice'])) $this->CurrentRetailerOfferPrice = $o['CurrentRetailerOfferPrice'];
if (isset($o['GssnId'])) $this->GssnId = $o['GssnId'];
if (isset($o['NoImage'])) $this->NoImage = $o['NoImage'];
if (isset($o['RegistrationNumber'])) $this->RegistrationNumber = $o['RegistrationNumber'];
if (isset($o['RegistrationDate'])) $this->RegistrationDate = JsonConverters::from('DateTime', $o['RegistrationDate']);
if (isset($o['Mileage'])) $this->Mileage = $o['Mileage'];
if (isset($o['TradeInDate'])) $this->TradeInDate = JsonConverters::from('DateTime', $o['TradeInDate']);
if (isset($o['VID'])) $this->VID = $o['VID'];
if (isset($o['EmissionCombined'])) $this->EmissionCombined = $o['EmissionCombined'];
if (isset($o['EmissionDirective'])) $this->EmissionDirective = $o['EmissionDirective'];
if (isset($o['NormalisedEmissionDirective'])) $this->NormalisedEmissionDirective = $o['NormalisedEmissionDirective'];
if (isset($o['HasMildHybridEquipmentCode'])) $this->HasMildHybridEquipmentCode = $o['HasMildHybridEquipmentCode'];
if (isset($o['Acceleration'])) $this->Acceleration = $o['Acceleration'];
if (isset($o['ChassisNumber'])) $this->ChassisNumber = $o['ChassisNumber'];
if (isset($o['NumberOfDoors'])) $this->NumberOfDoors = $o['NumberOfDoors'];
if (isset($o['NumberOfSeats'])) $this->NumberOfSeats = $o['NumberOfSeats'];
if (isset($o['SpecialInfo'])) $this->SpecialInfo = $o['SpecialInfo'];
if (isset($o['EligibleForIntegratedServiceCare'])) $this->EligibleForIntegratedServiceCare = $o['EligibleForIntegratedServiceCare'];
if (isset($o['ConsumptionCombined'])) $this->ConsumptionCombined = JsonConverters::from('Consumption', $o['ConsumptionCombined']);
if (isset($o['ConsumptionExtraUrban'])) $this->ConsumptionExtraUrban = JsonConverters::from('Consumption', $o['ConsumptionExtraUrban']);
if (isset($o['ConsumptionUrban'])) $this->ConsumptionUrban = JsonConverters::from('Consumption', $o['ConsumptionUrban']);
if (isset($o['WltpFuelConsumptionCombined'])) $this->WltpFuelConsumptionCombined = JsonConverters::from('Consumption', $o['WltpFuelConsumptionCombined']);
if (isset($o['WltpFuelConsumptionExtraHigh'])) $this->WltpFuelConsumptionExtraHigh = JsonConverters::from('Consumption', $o['WltpFuelConsumptionExtraHigh']);
if (isset($o['WltpFuelConsumptionHigh'])) $this->WltpFuelConsumptionHigh = JsonConverters::from('Consumption', $o['WltpFuelConsumptionHigh']);
if (isset($o['WltpFuelConsumptionLow'])) $this->WltpFuelConsumptionLow = JsonConverters::from('Consumption', $o['WltpFuelConsumptionLow']);
if (isset($o['WltpFuelConsumptionMedium'])) $this->WltpFuelConsumptionMedium = JsonConverters::from('Consumption', $o['WltpFuelConsumptionMedium']);
if (isset($o['EnergyEfficiencyClass'])) $this->EnergyEfficiencyClass = JsonConverters::from('EmissionClass', $o['EnergyEfficiencyClass']);
if (isset($o['Equipment'])) $this->Equipment = JsonConverters::fromArray('Equipmentv2', $o['Equipment']);
if (isset($o['EquipmentAdditional'])) $this->EquipmentAdditional = JsonConverters::fromArray('Equipment', $o['EquipmentAdditional']);
if (isset($o['EquipmentCategories'])) $this->EquipmentCategories = JsonConverters::fromArray('EquipmentCategoryv2', $o['EquipmentCategories']);
if (isset($o['VehicleData'])) $this->VehicleData = JsonConverters::fromArray('VehicleAttribute', $o['VehicleData']);
if (isset($o['IntegratedServiceCareOptions'])) $this->IntegratedServiceCareOptions = JsonConverters::fromArray('IntegratedServiceCareOptions', $o['IntegratedServiceCareOptions']);
if (isset($o['IspVehicleCustomerDescriptions'])) $this->IspVehicleCustomerDescriptions = JsonConverters::fromArray('string', $o['IspVehicleCustomerDescriptions']);
if (isset($o['MarketingCode'])) $this->MarketingCode = $o['MarketingCode'];
if (isset($o['EligibleForMaTransfer'])) $this->EligibleForMaTransfer = $o['EligibleForMaTransfer'];
if (isset($o['ConfirmedProductionDate'])) $this->ConfirmedProductionDate = $o['ConfirmedProductionDate'];
if (isset($o['ForecastedArrivalDate'])) $this->ForecastedArrivalDate = $o['ForecastedArrivalDate'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Vin)) $o['Vin'] = $this->Vin;
if (isset($this->CommissionNumber)) $o['CommissionNumber'] = $this->CommissionNumber;
if (isset($this->Description)) $o['Description'] = $this->Description;
if (isset($this->ShortDescription)) $o['ShortDescription'] = $this->ShortDescription;
if (isset($this->ModelId)) $o['ModelId'] = $this->ModelId;
if (isset($this->Model)) $o['Model'] = $this->Model;
if (isset($this->FullModelYearCode)) $o['FullModelYearCode'] = $this->FullModelYearCode;
if (isset($this->BrandId)) $o['BrandId'] = $this->BrandId;
if (isset($this->Brand)) $o['Brand'] = JsonConverters::to('BackOrderVehicleDetailsBrand', $this->Brand);
if (isset($this->RetailerId)) $o['RetailerId'] = $this->RetailerId;
if (isset($this->ImageUrl)) $o['ImageUrl'] = $this->ImageUrl;
if (isset($this->Colour)) $o['Colour'] = $this->Colour;
if (isset($this->ColourCode)) $o['ColourCode'] = $this->ColourCode;
if (isset($this->FuelType)) $o['FuelType'] = $this->FuelType;
if (isset($this->FuelTypeId)) $o['FuelTypeId'] = $this->FuelTypeId;
if (isset($this->Transmission)) $o['Transmission'] = $this->Transmission;
if (isset($this->TransmissionType)) $o['TransmissionType'] = $this->TransmissionType;
if (isset($this->Engine)) $o['Engine'] = JsonConverters::to('Engine', $this->Engine);
if (isset($this->EngineBadge)) $o['EngineBadge'] = $this->EngineBadge;
if (isset($this->Package)) $o['Package'] = $this->Package;
if (isset($this->Line)) $o['Line'] = $this->Line;
if (isset($this->Upholstery)) $o['Upholstery'] = $this->Upholstery;
if (isset($this->UpholsteryCode)) $o['UpholsteryCode'] = $this->UpholsteryCode;
if (isset($this->UsageCode)) $o['UsageCode'] = $this->UsageCode;
if (isset($this->Account)) $o['Account'] = $this->Account;
if (isset($this->AccountType)) $o['AccountType'] = $this->AccountType;
if (isset($this->NST)) $o['NST'] = $this->NST;
if (isset($this->Baumuster)) $o['Baumuster'] = $this->Baumuster;
if (isset($this->ElectricRange)) $o['ElectricRange'] = $this->ElectricRange;
if (isset($this->ElectricConsumption)) $o['ElectricConsumption'] = $this->ElectricConsumption;
if (isset($this->ActualPrice)) $o['ActualPrice'] = $this->ActualPrice;
if (isset($this->OTRPrice)) $o['OTRPrice'] = $this->OTRPrice;
if (isset($this->RetailPriceExVat)) $o['RetailPriceExVat'] = $this->RetailPriceExVat;
if (isset($this->P11D)) $o['P11D'] = $this->P11D;
if (isset($this->VehicleType)) $o['VehicleType'] = $this->VehicleType;
if (isset($this->UpholsteryDescription)) $o['UpholsteryDescription'] = $this->UpholsteryDescription;
if (isset($this->UpholsteryType)) $o['UpholsteryType'] = $this->UpholsteryType;
if (isset($this->BodyStyle)) $o['BodyStyle'] = $this->BodyStyle;
if (isset($this->BodyStyleStyleCode)) $o['BodyStyleStyleCode'] = $this->BodyStyleStyleCode;
if (isset($this->BodyStyleStyleCodeElectric)) $o['BodyStyleStyleCodeElectric'] = $this->BodyStyleStyleCodeElectric;
if (isset($this->BodyStyleStyleCodeHybrid)) $o['BodyStyleStyleCodeHybrid'] = $this->BodyStyleStyleCodeHybrid;
if (isset($this->AvailablePackages)) $o['AvailablePackages'] = JsonConverters::toArray('string', $this->AvailablePackages);
if (isset($this->Mapped_Line)) $o['Mapped_Line'] = $this->Mapped_Line;
if (isset($this->Secured)) $o['Secured'] = $this->Secured;
if (isset($this->Bm7NST)) $o['Bm7NST'] = $this->Bm7NST;
if (isset($this->IsAvailableOnline)) $o['IsAvailableOnline'] = $this->IsAvailableOnline;
if (isset($this->IsSpecialistCar)) $o['IsSpecialistCar'] = $this->IsSpecialistCar;
if (isset($this->IsSellable)) $o['IsSellable'] = $this->IsSellable;
if (isset($this->UnderOffer)) $o['UnderOffer'] = $this->UnderOffer;
if (isset($this->VehicleAuditDetails)) $o['VehicleAuditDetails'] = JsonConverters::toArray('VehicleAuditDetails', $this->VehicleAuditDetails);
if (isset($this->Retailer)) $o['Retailer'] = JsonConverters::to('Retailer', $this->Retailer);
if (isset($this->Media)) $o['Media'] = JsonConverters::to('Media', $this->Media);
if (isset($this->Emission)) $o['Emission'] = $this->Emission;
if (isset($this->ColourGroup)) $o['ColourGroup'] = $this->ColourGroup;
if (isset($this->VehicleClass)) $o['VehicleClass'] = $this->VehicleClass;
if (isset($this->ProductRange)) $o['ProductRange'] = $this->ProductRange;
if (isset($this->IsHOBackOrderAccountVehicle)) $o['IsHOBackOrderAccountVehicle'] = $this->IsHOBackOrderAccountVehicle;
if (isset($this->IsAllocatedToBackOrder)) $o['IsAllocatedToBackOrder'] = $this->IsAllocatedToBackOrder;
if (isset($this->InBackOrderAccount)) $o['InBackOrderAccount'] = $this->InBackOrderAccount;
if (isset($this->DeliveryCharge)) $o['DeliveryCharge'] = $this->DeliveryCharge;
if (isset($this->DeliveryChargeNet)) $o['DeliveryChargeNet'] = $this->DeliveryChargeNet;
if (isset($this->DeliveryChargeVAT)) $o['DeliveryChargeVAT'] = $this->DeliveryChargeVAT;
if (isset($this->Plates)) $o['Plates'] = $this->Plates;
if (isset($this->PlatesNet)) $o['PlatesNet'] = $this->PlatesNet;
if (isset($this->PlatesVAT)) $o['PlatesVAT'] = $this->PlatesVAT;
if (isset($this->FuelCharge)) $o['FuelCharge'] = $this->FuelCharge;
if (isset($this->FuelChargeNet)) $o['FuelChargeNet'] = $this->FuelChargeNet;
if (isset($this->FuelChargeVAT)) $o['FuelChargeVAT'] = $this->FuelChargeVAT;
if (isset($this->RetailPrice_ExVAT)) $o['RetailPrice_ExVAT'] = $this->RetailPrice_ExVAT;
if (isset($this->RetailPrice_IncVAT)) $o['RetailPrice_IncVAT'] = $this->RetailPrice_IncVAT;
if (isset($this->VED_Year1)) $o['VED_Year1'] = $this->VED_Year1;
if (isset($this->VED_Year2)) $o['VED_Year2'] = $this->VED_Year2;
if (isset($this->FirstRegFee)) $o['FirstRegFee'] = $this->FirstRegFee;
if (isset($this->OTR_Value)) $o['OTR_Value'] = $this->OTR_Value;
if (isset($this->OTR)) $o['OTR'] = $this->OTR;
if (isset($this->Prices)) $o['Prices'] = JsonConverters::toArray('Price', $this->Prices);
if (isset($this->ProductionDate)) $o['ProductionDate'] = $this->ProductionDate;
if (isset($this->PortArrivalDate)) $o['PortArrivalDate'] = JsonConverters::to('DateTime', $this->PortArrivalDate);
if (isset($this->Location)) $o['Location'] = $this->Location;
if (isset($this->IsDisplayStock)) $o['IsDisplayStock'] = $this->IsDisplayStock;
if (isset($this->DisplayRetailerId)) $o['DisplayRetailerId'] = $this->DisplayRetailerId;
if (isset($this->DisplayRetailer)) $o['DisplayRetailer'] = $this->DisplayRetailer;
if (isset($this->DisplayRetailerGssnId)) $o['DisplayRetailerGssnId'] = $this->DisplayRetailerGssnId;
if (isset($this->DisplayRetailerMarketAreaId)) $o['DisplayRetailerMarketAreaId'] = $this->DisplayRetailerMarketAreaId;
if (isset($this->IsSmartDisplayRetailer)) $o['IsSmartDisplayRetailer'] = $this->IsSmartDisplayRetailer;
if (isset($this->ColourDescription)) $o['ColourDescription'] = $this->ColourDescription;
if (isset($this->Creation)) $o['Creation'] = JsonConverters::to('DateTime', $this->Creation);
if (isset($this->Modified)) $o['Modified'] = JsonConverters::to('DateTime', $this->Modified);
if (isset($this->VATQualifyingNumber)) $o['VATQualifyingNumber'] = $this->VATQualifyingNumber;
if (isset($this->VATQualifying)) $o['VATQualifying'] = $this->VATQualifying;
if (isset($this->CurrentRetailerOfferPrice)) $o['CurrentRetailerOfferPrice'] = $this->CurrentRetailerOfferPrice;
if (isset($this->GssnId)) $o['GssnId'] = $this->GssnId;
if (isset($this->NoImage)) $o['NoImage'] = $this->NoImage;
if (isset($this->RegistrationNumber)) $o['RegistrationNumber'] = $this->RegistrationNumber;
if (isset($this->RegistrationDate)) $o['RegistrationDate'] = JsonConverters::to('DateTime', $this->RegistrationDate);
if (isset($this->Mileage)) $o['Mileage'] = $this->Mileage;
if (isset($this->TradeInDate)) $o['TradeInDate'] = JsonConverters::to('DateTime', $this->TradeInDate);
if (isset($this->VID)) $o['VID'] = $this->VID;
if (isset($this->EmissionCombined)) $o['EmissionCombined'] = $this->EmissionCombined;
if (isset($this->EmissionDirective)) $o['EmissionDirective'] = $this->EmissionDirective;
if (isset($this->NormalisedEmissionDirective)) $o['NormalisedEmissionDirective'] = $this->NormalisedEmissionDirective;
if (isset($this->HasMildHybridEquipmentCode)) $o['HasMildHybridEquipmentCode'] = $this->HasMildHybridEquipmentCode;
if (isset($this->Acceleration)) $o['Acceleration'] = $this->Acceleration;
if (isset($this->ChassisNumber)) $o['ChassisNumber'] = $this->ChassisNumber;
if (isset($this->NumberOfDoors)) $o['NumberOfDoors'] = $this->NumberOfDoors;
if (isset($this->NumberOfSeats)) $o['NumberOfSeats'] = $this->NumberOfSeats;
if (isset($this->SpecialInfo)) $o['SpecialInfo'] = $this->SpecialInfo;
if (isset($this->EligibleForIntegratedServiceCare)) $o['EligibleForIntegratedServiceCare'] = $this->EligibleForIntegratedServiceCare;
if (isset($this->ConsumptionCombined)) $o['ConsumptionCombined'] = JsonConverters::to('Consumption', $this->ConsumptionCombined);
if (isset($this->ConsumptionExtraUrban)) $o['ConsumptionExtraUrban'] = JsonConverters::to('Consumption', $this->ConsumptionExtraUrban);
if (isset($this->ConsumptionUrban)) $o['ConsumptionUrban'] = JsonConverters::to('Consumption', $this->ConsumptionUrban);
if (isset($this->WltpFuelConsumptionCombined)) $o['WltpFuelConsumptionCombined'] = JsonConverters::to('Consumption', $this->WltpFuelConsumptionCombined);
if (isset($this->WltpFuelConsumptionExtraHigh)) $o['WltpFuelConsumptionExtraHigh'] = JsonConverters::to('Consumption', $this->WltpFuelConsumptionExtraHigh);
if (isset($this->WltpFuelConsumptionHigh)) $o['WltpFuelConsumptionHigh'] = JsonConverters::to('Consumption', $this->WltpFuelConsumptionHigh);
if (isset($this->WltpFuelConsumptionLow)) $o['WltpFuelConsumptionLow'] = JsonConverters::to('Consumption', $this->WltpFuelConsumptionLow);
if (isset($this->WltpFuelConsumptionMedium)) $o['WltpFuelConsumptionMedium'] = JsonConverters::to('Consumption', $this->WltpFuelConsumptionMedium);
if (isset($this->EnergyEfficiencyClass)) $o['EnergyEfficiencyClass'] = JsonConverters::to('EmissionClass', $this->EnergyEfficiencyClass);
if (isset($this->Equipment)) $o['Equipment'] = JsonConverters::toArray('Equipmentv2', $this->Equipment);
if (isset($this->EquipmentAdditional)) $o['EquipmentAdditional'] = JsonConverters::toArray('Equipment', $this->EquipmentAdditional);
if (isset($this->EquipmentCategories)) $o['EquipmentCategories'] = JsonConverters::toArray('EquipmentCategoryv2', $this->EquipmentCategories);
if (isset($this->VehicleData)) $o['VehicleData'] = JsonConverters::toArray('VehicleAttribute', $this->VehicleData);
if (isset($this->IntegratedServiceCareOptions)) $o['IntegratedServiceCareOptions'] = JsonConverters::toArray('IntegratedServiceCareOptions', $this->IntegratedServiceCareOptions);
if (isset($this->IspVehicleCustomerDescriptions)) $o['IspVehicleCustomerDescriptions'] = JsonConverters::toArray('string', $this->IspVehicleCustomerDescriptions);
if (isset($this->MarketingCode)) $o['MarketingCode'] = $this->MarketingCode;
if (isset($this->EligibleForMaTransfer)) $o['EligibleForMaTransfer'] = $this->EligibleForMaTransfer;
if (isset($this->ConfirmedProductionDate)) $o['ConfirmedProductionDate'] = $this->ConfirmedProductionDate;
if (isset($this->ForecastedArrivalDate)) $o['ForecastedArrivalDate'] = $this->ForecastedArrivalDate;
return empty($o) ? new class(){} : $o;
}
}
class Package implements JsonSerializable
{
public function __construct(
/** @var int */
public int $Id=0,
/** @var string|null */
public ?string $Description=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['Description'])) $this->Description = $o['Description'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->Description)) $o['Description'] = $this->Description;
return empty($o) ? new class(){} : $o;
}
}
class BackOrderVehicleDetailsWithPackages extends BackOrderVehicleDetails implements IPackages, JsonSerializable
{
/**
* @param string|null $Vin
* @param string|null $CommissionNumber
* @param string|null $Description
* @param string|null $ShortDescription
* @param int $ModelId
* @param string|null $Model
* @param string|null $FullModelYearCode
* @param int|null $BrandId
* @param BackOrderVehicleDetailsBrand|null $Brand
* @param int $RetailerId
* @param string|null $ImageUrl
* @param string|null $Colour
* @param string|null $ColourCode
* @param string|null $FuelType
* @param int $FuelTypeId
* @param string|null $Transmission
* @param string|null $TransmissionType
* @param Engine|null $Engine
* @param string|null $EngineBadge
* @param string|null $Package
* @param string|null $Line
* @param string|null $Upholstery
* @param string|null $UpholsteryCode
* @param string|null $UsageCode
* @param string|null $Account
* @param string|null $AccountType
* @param string|null $NST
* @param string|null $Baumuster
* @param float|null $ElectricRange
* @param float|null $ElectricConsumption
* @param float|null $ActualPrice
* @param float $OTRPrice
* @param float $RetailPriceExVat
* @param float $P11D
* @param string|null $VehicleType
* @param string|null $UpholsteryDescription
* @param string|null $UpholsteryType
* @param string|null $BodyStyle
* @param string|null $BodyStyleStyleCode
* @param string|null $BodyStyleStyleCodeElectric
* @param string|null $BodyStyleStyleCodeHybrid
* @param array<string>|null $AvailablePackages
* @param int|null $Mapped_Line
* @param bool|null $Secured
* @param string|null $Bm7NST
* @param bool|null $IsAvailableOnline
* @param bool|null $IsSpecialistCar
* @param bool|null $IsSellable
* @param bool|null $UnderOffer
* @param array<VehicleAuditDetails>|null $VehicleAuditDetails
* @param Retailer|null $Retailer
* @param Media|null $Media
* @param float|null $Emission
* @param string|null $ColourGroup
* @param string|null $VehicleClass
* @param string|null $ProductRange
* @param bool|null $IsHOBackOrderAccountVehicle
* @param bool|null $IsAllocatedToBackOrder
* @param bool|null $InBackOrderAccount
* @param float $DeliveryCharge
* @param float|null $DeliveryChargeNet
* @param float|null $DeliveryChargeVAT
* @param float $Plates
* @param float|null $PlatesNet
* @param float|null $PlatesVAT
* @param float $FuelCharge
* @param float|null $FuelChargeNet
* @param float|null $FuelChargeVAT
* @param float $RetailPrice_ExVAT
* @param float $RetailPrice_IncVAT
* @param float $VED_Year1
* @param float $VED_Year2
* @param float $FirstRegFee
* @param float $OTR_Value
* @param float $OTR
* @param array<Price>|null $Prices
* @param string|null $ProductionDate
* @param DateTime|null $PortArrivalDate
* @param string|null $Location
* @param bool|null $IsDisplayStock
* @param int|null $DisplayRetailerId
* @param string|null $DisplayRetailer
* @param string|null $DisplayRetailerGssnId
* @param int|null $DisplayRetailerMarketAreaId
* @param bool|null $IsSmartDisplayRetailer
* @param string|null $ColourDescription
* @param DateTime|null $Creation
* @param DateTime|null $Modified
* @param int|null $VATQualifyingNumber
* @param bool|null $VATQualifying
* @param float $CurrentRetailerOfferPrice
* @param string|null $GssnId
* @param bool|null $NoImage
* @param string|null $RegistrationNumber
* @param DateTime|null $RegistrationDate
* @param int|null $Mileage
* @param DateTime|null $TradeInDate
* @param string|null $VID
* @param string|null $EmissionCombined
* @param string|null $EmissionDirective
* @param string|null $NormalisedEmissionDirective
* @param bool|null $HasMildHybridEquipmentCode
* @param float|null $Acceleration
* @param string|null $ChassisNumber
* @param string|null $NumberOfDoors
* @param string|null $NumberOfSeats
* @param bool|null $SpecialInfo
* @param bool|null $EligibleForIntegratedServiceCare
* @param Consumption|null $ConsumptionCombined
* @param Consumption|null $ConsumptionExtraUrban
* @param Consumption|null $ConsumptionUrban
* @param Consumption|null $WltpFuelConsumptionCombined
* @param Consumption|null $WltpFuelConsumptionExtraHigh
* @param Consumption|null $WltpFuelConsumptionHigh
* @param Consumption|null $WltpFuelConsumptionLow
* @param Consumption|null $WltpFuelConsumptionMedium
* @param EmissionClass|null $EnergyEfficiencyClass
* @param array<Equipmentv2>|null $Equipment
* @param array<Equipment>|null $EquipmentAdditional
* @param array<EquipmentCategoryv2>|null $EquipmentCategories
* @param array<VehicleAttribute>|null $VehicleData
* @param array<IntegratedServiceCareOptions>|null $IntegratedServiceCareOptions
* @param array<string>|null $IspVehicleCustomerDescriptions
* @param string|null $MarketingCode
* @param bool|null $EligibleForMaTransfer
* @param string|null $ConfirmedProductionDate
* @param string|null $ForecastedArrivalDate
*/
public function __construct(
?string $Vin=null,
?string $CommissionNumber=null,
?string $Description=null,
?string $ShortDescription=null,
int $ModelId=0,
?string $Model=null,
?string $FullModelYearCode=null,
?int $BrandId=null,
?BackOrderVehicleDetailsBrand $Brand=null,
int $RetailerId=0,
?string $ImageUrl=null,
?string $Colour=null,
?string $ColourCode=null,
?string $FuelType=null,
int $FuelTypeId=0,
?string $Transmission=null,
?string $TransmissionType=null,
?Engine $Engine=null,
?string $EngineBadge=null,
?string $Package=null,
?string $Line=null,
?string $Upholstery=null,
?string $UpholsteryCode=null,
?string $UsageCode=null,
?string $Account=null,
?string $AccountType=null,
?string $NST=null,
?string $Baumuster=null,
?float $ElectricRange=null,
?float $ElectricConsumption=null,
?float $ActualPrice=null,
float $OTRPrice=0.0,
float $RetailPriceExVat=0.0,
float $P11D=0.0,
?string $VehicleType=null,
?string $UpholsteryDescription=null,
?string $UpholsteryType=null,
?string $BodyStyle=null,
?string $BodyStyleStyleCode=null,
?string $BodyStyleStyleCodeElectric=null,
?string $BodyStyleStyleCodeHybrid=null,
?array $AvailablePackages=null,
?int $Mapped_Line=null,
?bool $Secured=null,
?string $Bm7NST=null,
?bool $IsAvailableOnline=null,
?bool $IsSpecialistCar=null,
?bool $IsSellable=null,
?bool $UnderOffer=null,
?array $VehicleAuditDetails=null,
?Retailer $Retailer=null,
?Media $Media=null,
?float $Emission=null,
?string $ColourGroup=null,
?string $VehicleClass=null,
?string $ProductRange=null,
?bool $IsHOBackOrderAccountVehicle=null,
?bool $IsAllocatedToBackOrder=null,
?bool $InBackOrderAccount=null,
float $DeliveryCharge=0.0,
?float $DeliveryChargeNet=null,
?float $DeliveryChargeVAT=null,
float $Plates=0.0,
?float $PlatesNet=null,
?float $PlatesVAT=null,
float $FuelCharge=0.0,
?float $FuelChargeNet=null,
?float $FuelChargeVAT=null,
float $RetailPrice_ExVAT=0.0,
float $RetailPrice_IncVAT=0.0,
float $VED_Year1=0.0,
float $VED_Year2=0.0,
float $FirstRegFee=0.0,
float $OTR_Value=0.0,
float $OTR=0.0,
?array $Prices=null,
?string $ProductionDate=null,
?DateTime $PortArrivalDate=null,
?string $Location=null,
?bool $IsDisplayStock=null,
?int $DisplayRetailerId=null,
?string $DisplayRetailer=null,
?string $DisplayRetailerGssnId=null,
?int $DisplayRetailerMarketAreaId=null,
?bool $IsSmartDisplayRetailer=null,
?string $ColourDescription=null,
?DateTime $Creation=null,
?DateTime $Modified=null,
?int $VATQualifyingNumber=null,
?bool $VATQualifying=null,
float $CurrentRetailerOfferPrice=0.0,
?string $GssnId=null,
?bool $NoImage=null,
?string $RegistrationNumber=null,
?DateTime $RegistrationDate=null,
?int $Mileage=null,
?DateTime $TradeInDate=null,
?string $VID=null,
?string $EmissionCombined=null,
?string $EmissionDirective=null,
?string $NormalisedEmissionDirective=null,
?bool $HasMildHybridEquipmentCode=null,
?float $Acceleration=null,
?string $ChassisNumber=null,
?string $NumberOfDoors=null,
?string $NumberOfSeats=null,
?bool $SpecialInfo=null,
?bool $EligibleForIntegratedServiceCare=null,
?Consumption $ConsumptionCombined=null,
?Consumption $ConsumptionExtraUrban=null,
?Consumption $ConsumptionUrban=null,
?Consumption $WltpFuelConsumptionCombined=null,
?Consumption $WltpFuelConsumptionExtraHigh=null,
?Consumption $WltpFuelConsumptionHigh=null,
?Consumption $WltpFuelConsumptionLow=null,
?Consumption $WltpFuelConsumptionMedium=null,
?EmissionClass $EnergyEfficiencyClass=null,
?array $Equipment=null,
?array $EquipmentAdditional=null,
?array $EquipmentCategories=null,
?array $VehicleData=null,
?array $IntegratedServiceCareOptions=null,
?array $IspVehicleCustomerDescriptions=null,
?string $MarketingCode=null,
?bool $EligibleForMaTransfer=null,
?string $ConfirmedProductionDate=null,
?string $ForecastedArrivalDate=null,
/** @var array<Package>|null */
public ?array $Packages=null,
/** @var string */
public string $PackageNames=''
) {
parent::__construct($Vin,$CommissionNumber,$Description,$ShortDescription,$ModelId,$Model,$FullModelYearCode,$BrandId,$Brand,$RetailerId,$ImageUrl,$Colour,$ColourCode,$FuelType,$FuelTypeId,$Transmission,$TransmissionType,$Engine,$EngineBadge,$Package,$Line,$Upholstery,$UpholsteryCode,$UsageCode,$Account,$AccountType,$NST,$Baumuster,$ElectricRange,$ElectricConsumption,$ActualPrice,$OTRPrice,$RetailPriceExVat,$P11D,$VehicleType,$UpholsteryDescription,$UpholsteryType,$BodyStyle,$BodyStyleStyleCode,$BodyStyleStyleCodeElectric,$BodyStyleStyleCodeHybrid,$AvailablePackages,$Mapped_Line,$Secured,$Bm7NST,$IsAvailableOnline,$IsSpecialistCar,$IsSellable,$UnderOffer,$VehicleAuditDetails,$Retailer,$Media,$Emission,$ColourGroup,$VehicleClass,$ProductRange,$IsHOBackOrderAccountVehicle,$IsAllocatedToBackOrder,$InBackOrderAccount,$DeliveryCharge,$DeliveryChargeNet,$DeliveryChargeVAT,$Plates,$PlatesNet,$PlatesVAT,$FuelCharge,$FuelChargeNet,$FuelChargeVAT,$RetailPrice_ExVAT,$RetailPrice_IncVAT,$VED_Year1,$VED_Year2,$FirstRegFee,$OTR_Value,$OTR,$Prices,$ProductionDate,$PortArrivalDate,$Location,$IsDisplayStock,$DisplayRetailerId,$DisplayRetailer,$DisplayRetailerGssnId,$DisplayRetailerMarketAreaId,$IsSmartDisplayRetailer,$ColourDescription,$Creation,$Modified,$VATQualifyingNumber,$VATQualifying,$CurrentRetailerOfferPrice,$GssnId,$NoImage,$RegistrationNumber,$RegistrationDate,$Mileage,$TradeInDate,$VID,$EmissionCombined,$EmissionDirective,$NormalisedEmissionDirective,$HasMildHybridEquipmentCode,$Acceleration,$ChassisNumber,$NumberOfDoors,$NumberOfSeats,$SpecialInfo,$EligibleForIntegratedServiceCare,$ConsumptionCombined,$ConsumptionExtraUrban,$ConsumptionUrban,$WltpFuelConsumptionCombined,$WltpFuelConsumptionExtraHigh,$WltpFuelConsumptionHigh,$WltpFuelConsumptionLow,$WltpFuelConsumptionMedium,$EnergyEfficiencyClass,$Equipment,$EquipmentAdditional,$EquipmentCategories,$VehicleData,$IntegratedServiceCareOptions,$IspVehicleCustomerDescriptions,$MarketingCode,$EligibleForMaTransfer,$ConfirmedProductionDate,$ForecastedArrivalDate);
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['Packages'])) $this->Packages = JsonConverters::fromArray('Package', $o['Packages']);
if (isset($o['PackageNames'])) $this->PackageNames = $o['PackageNames'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->Packages)) $o['Packages'] = JsonConverters::toArray('Package', $this->Packages);
if (isset($this->PackageNames)) $o['PackageNames'] = $this->PackageNames;
return empty($o) ? new class(){} : $o;
}
}
class CarConfiguratorVehicle extends BackOrderVehicleDetailsWithPackages implements JsonSerializable
{
/**
* @param string|null $Vin
* @param string|null $CommissionNumber
* @param string|null $Description
* @param string|null $ShortDescription
* @param int $ModelId
* @param string|null $Model
* @param string|null $FullModelYearCode
* @param int|null $BrandId
* @param BackOrderVehicleDetailsBrand|null $Brand
* @param int $RetailerId
* @param string|null $ImageUrl
* @param string|null $Colour
* @param string|null $ColourCode
* @param string|null $FuelType
* @param int $FuelTypeId
* @param string|null $Transmission
* @param string|null $TransmissionType
* @param Engine|null $Engine
* @param string|null $EngineBadge
* @param string|null $Package
* @param string|null $Line
* @param string|null $Upholstery
* @param string|null $UpholsteryCode
* @param string|null $UsageCode
* @param string|null $Account
* @param string|null $AccountType
* @param string|null $NST
* @param string|null $Baumuster
* @param float|null $ElectricRange
* @param float|null $ElectricConsumption
* @param float|null $ActualPrice
* @param float $OTRPrice
* @param float $RetailPriceExVat
* @param float $P11D
* @param string|null $VehicleType
* @param string|null $UpholsteryDescription
* @param string|null $UpholsteryType
* @param string|null $BodyStyle
* @param string|null $BodyStyleStyleCode
* @param string|null $BodyStyleStyleCodeElectric
* @param string|null $BodyStyleStyleCodeHybrid
* @param array<string>|null $AvailablePackages
* @param int|null $Mapped_Line
* @param bool|null $Secured
* @param string|null $Bm7NST
* @param bool|null $IsAvailableOnline
* @param bool|null $IsSpecialistCar
* @param bool|null $IsSellable
* @param bool|null $UnderOffer
* @param array<VehicleAuditDetails>|null $VehicleAuditDetails
* @param Retailer|null $Retailer
* @param Media|null $Media
* @param float|null $Emission
* @param string|null $ColourGroup
* @param string|null $VehicleClass
* @param string|null $ProductRange
* @param bool|null $IsHOBackOrderAccountVehicle
* @param bool|null $IsAllocatedToBackOrder
* @param bool|null $InBackOrderAccount
* @param float $DeliveryCharge
* @param float|null $DeliveryChargeNet
* @param float|null $DeliveryChargeVAT
* @param float $Plates
* @param float|null $PlatesNet
* @param float|null $PlatesVAT
* @param float $FuelCharge
* @param float|null $FuelChargeNet
* @param float|null $FuelChargeVAT
* @param float $RetailPrice_ExVAT
* @param float $RetailPrice_IncVAT
* @param float $VED_Year1
* @param float $VED_Year2
* @param float $FirstRegFee
* @param float $OTR_Value
* @param float $OTR
* @param array<Price>|null $Prices
* @param string|null $ProductionDate
* @param DateTime|null $PortArrivalDate
* @param string|null $Location
* @param bool|null $IsDisplayStock
* @param int|null $DisplayRetailerId
* @param string|null $DisplayRetailer
* @param string|null $DisplayRetailerGssnId
* @param int|null $DisplayRetailerMarketAreaId
* @param bool|null $IsSmartDisplayRetailer
* @param string|null $ColourDescription
* @param DateTime|null $Creation
* @param DateTime|null $Modified
* @param int|null $VATQualifyingNumber
* @param bool|null $VATQualifying
* @param float $CurrentRetailerOfferPrice
* @param string|null $GssnId
* @param bool|null $NoImage
* @param string|null $RegistrationNumber
* @param DateTime|null $RegistrationDate
* @param int|null $Mileage
* @param DateTime|null $TradeInDate
* @param string|null $VID
* @param string|null $EmissionCombined
* @param string|null $EmissionDirective
* @param string|null $NormalisedEmissionDirective
* @param bool|null $HasMildHybridEquipmentCode
* @param float|null $Acceleration
* @param string|null $ChassisNumber
* @param string|null $NumberOfDoors
* @param string|null $NumberOfSeats
* @param bool|null $SpecialInfo
* @param bool|null $EligibleForIntegratedServiceCare
* @param Consumption|null $ConsumptionCombined
* @param Consumption|null $ConsumptionExtraUrban
* @param Consumption|null $ConsumptionUrban
* @param Consumption|null $WltpFuelConsumptionCombined
* @param Consumption|null $WltpFuelConsumptionExtraHigh
* @param Consumption|null $WltpFuelConsumptionHigh
* @param Consumption|null $WltpFuelConsumptionLow
* @param Consumption|null $WltpFuelConsumptionMedium
* @param EmissionClass|null $EnergyEfficiencyClass
* @param array<Equipmentv2>|null $Equipment
* @param array<Equipment>|null $EquipmentAdditional
* @param array<EquipmentCategoryv2>|null $EquipmentCategories
* @param array<VehicleAttribute>|null $VehicleData
* @param array<IntegratedServiceCareOptions>|null $IntegratedServiceCareOptions
* @param array<string>|null $IspVehicleCustomerDescriptions
* @param string|null $MarketingCode
* @param bool|null $EligibleForMaTransfer
* @param string|null $ConfirmedProductionDate
* @param string|null $ForecastedArrivalDate
* @param array<Package>|null $Packages
* @param string $PackageNames
*/
public function __construct(
?string $Vin=null,
?string $CommissionNumber=null,
?string $Description=null,
?string $ShortDescription=null,
int $ModelId=0,
?string $Model=null,
?string $FullModelYearCode=null,
?int $BrandId=null,
?BackOrderVehicleDetailsBrand $Brand=null,
int $RetailerId=0,
?string $ImageUrl=null,
?string $Colour=null,
?string $ColourCode=null,
?string $FuelType=null,
int $FuelTypeId=0,
?string $Transmission=null,
?string $TransmissionType=null,
?Engine $Engine=null,
?string $EngineBadge=null,
?string $Package=null,
?string $Line=null,
?string $Upholstery=null,
?string $UpholsteryCode=null,
?string $UsageCode=null,
?string $Account=null,
?string $AccountType=null,
?string $NST=null,
?string $Baumuster=null,
?float $ElectricRange=null,
?float $ElectricConsumption=null,
?float $ActualPrice=null,
float $OTRPrice=0.0,
float $RetailPriceExVat=0.0,
float $P11D=0.0,
?string $VehicleType=null,
?string $UpholsteryDescription=null,
?string $UpholsteryType=null,
?string $BodyStyle=null,
?string $BodyStyleStyleCode=null,
?string $BodyStyleStyleCodeElectric=null,
?string $BodyStyleStyleCodeHybrid=null,
?array $AvailablePackages=null,
?int $Mapped_Line=null,
?bool $Secured=null,
?string $Bm7NST=null,
?bool $IsAvailableOnline=null,
?bool $IsSpecialistCar=null,
?bool $IsSellable=null,
?bool $UnderOffer=null,
?array $VehicleAuditDetails=null,
?Retailer $Retailer=null,
?Media $Media=null,
?float $Emission=null,
?string $ColourGroup=null,
?string $VehicleClass=null,
?string $ProductRange=null,
?bool $IsHOBackOrderAccountVehicle=null,
?bool $IsAllocatedToBackOrder=null,
?bool $InBackOrderAccount=null,
float $DeliveryCharge=0.0,
?float $DeliveryChargeNet=null,
?float $DeliveryChargeVAT=null,
float $Plates=0.0,
?float $PlatesNet=null,
?float $PlatesVAT=null,
float $FuelCharge=0.0,
?float $FuelChargeNet=null,
?float $FuelChargeVAT=null,
float $RetailPrice_ExVAT=0.0,
float $RetailPrice_IncVAT=0.0,
float $VED_Year1=0.0,
float $VED_Year2=0.0,
float $FirstRegFee=0.0,
float $OTR_Value=0.0,
float $OTR=0.0,
?array $Prices=null,
?string $ProductionDate=null,
?DateTime $PortArrivalDate=null,
?string $Location=null,
?bool $IsDisplayStock=null,
?int $DisplayRetailerId=null,
?string $DisplayRetailer=null,
?string $DisplayRetailerGssnId=null,
?int $DisplayRetailerMarketAreaId=null,
?bool $IsSmartDisplayRetailer=null,
?string $ColourDescription=null,
?DateTime $Creation=null,
?DateTime $Modified=null,
?int $VATQualifyingNumber=null,
?bool $VATQualifying=null,
float $CurrentRetailerOfferPrice=0.0,
?string $GssnId=null,
?bool $NoImage=null,
?string $RegistrationNumber=null,
?DateTime $RegistrationDate=null,
?int $Mileage=null,
?DateTime $TradeInDate=null,
?string $VID=null,
?string $EmissionCombined=null,
?string $EmissionDirective=null,
?string $NormalisedEmissionDirective=null,
?bool $HasMildHybridEquipmentCode=null,
?float $Acceleration=null,
?string $ChassisNumber=null,
?string $NumberOfDoors=null,
?string $NumberOfSeats=null,
?bool $SpecialInfo=null,
?bool $EligibleForIntegratedServiceCare=null,
?Consumption $ConsumptionCombined=null,
?Consumption $ConsumptionExtraUrban=null,
?Consumption $ConsumptionUrban=null,
?Consumption $WltpFuelConsumptionCombined=null,
?Consumption $WltpFuelConsumptionExtraHigh=null,
?Consumption $WltpFuelConsumptionHigh=null,
?Consumption $WltpFuelConsumptionLow=null,
?Consumption $WltpFuelConsumptionMedium=null,
?EmissionClass $EnergyEfficiencyClass=null,
?array $Equipment=null,
?array $EquipmentAdditional=null,
?array $EquipmentCategories=null,
?array $VehicleData=null,
?array $IntegratedServiceCareOptions=null,
?array $IspVehicleCustomerDescriptions=null,
?string $MarketingCode=null,
?bool $EligibleForMaTransfer=null,
?string $ConfirmedProductionDate=null,
?string $ForecastedArrivalDate=null,
?array $Packages=null,
string $PackageNames='',
/** @var string|null */
public ?string $ModelYearCode=null,
/** @var string|null */
public ?string $HalfModelYearCode=null,
/** @var array<int>|null */
public ?array $ActiveOffers=null,
/** @var bool|null */
public ?bool $EligibleForMotability=null,
/** @var bool|null */
public ?bool $NearestPort=null
) {
parent::__construct($Vin,$CommissionNumber,$Description,$ShortDescription,$ModelId,$Model,$FullModelYearCode,$BrandId,$Brand,$RetailerId,$ImageUrl,$Colour,$ColourCode,$FuelType,$FuelTypeId,$Transmission,$TransmissionType,$Engine,$EngineBadge,$Package,$Line,$Upholstery,$UpholsteryCode,$UsageCode,$Account,$AccountType,$NST,$Baumuster,$ElectricRange,$ElectricConsumption,$ActualPrice,$OTRPrice,$RetailPriceExVat,$P11D,$VehicleType,$UpholsteryDescription,$UpholsteryType,$BodyStyle,$BodyStyleStyleCode,$BodyStyleStyleCodeElectric,$BodyStyleStyleCodeHybrid,$AvailablePackages,$Mapped_Line,$Secured,$Bm7NST,$IsAvailableOnline,$IsSpecialistCar,$IsSellable,$UnderOffer,$VehicleAuditDetails,$Retailer,$Media,$Emission,$ColourGroup,$VehicleClass,$ProductRange,$IsHOBackOrderAccountVehicle,$IsAllocatedToBackOrder,$InBackOrderAccount,$DeliveryCharge,$DeliveryChargeNet,$DeliveryChargeVAT,$Plates,$PlatesNet,$PlatesVAT,$FuelCharge,$FuelChargeNet,$FuelChargeVAT,$RetailPrice_ExVAT,$RetailPrice_IncVAT,$VED_Year1,$VED_Year2,$FirstRegFee,$OTR_Value,$OTR,$Prices,$ProductionDate,$PortArrivalDate,$Location,$IsDisplayStock,$DisplayRetailerId,$DisplayRetailer,$DisplayRetailerGssnId,$DisplayRetailerMarketAreaId,$IsSmartDisplayRetailer,$ColourDescription,$Creation,$Modified,$VATQualifyingNumber,$VATQualifying,$CurrentRetailerOfferPrice,$GssnId,$NoImage,$RegistrationNumber,$RegistrationDate,$Mileage,$TradeInDate,$VID,$EmissionCombined,$EmissionDirective,$NormalisedEmissionDirective,$HasMildHybridEquipmentCode,$Acceleration,$ChassisNumber,$NumberOfDoors,$NumberOfSeats,$SpecialInfo,$EligibleForIntegratedServiceCare,$ConsumptionCombined,$ConsumptionExtraUrban,$ConsumptionUrban,$WltpFuelConsumptionCombined,$WltpFuelConsumptionExtraHigh,$WltpFuelConsumptionHigh,$WltpFuelConsumptionLow,$WltpFuelConsumptionMedium,$EnergyEfficiencyClass,$Equipment,$EquipmentAdditional,$EquipmentCategories,$VehicleData,$IntegratedServiceCareOptions,$IspVehicleCustomerDescriptions,$MarketingCode,$EligibleForMaTransfer,$ConfirmedProductionDate,$ForecastedArrivalDate,$Packages,$PackageNames);
}
/** @throws Exception */
public function fromMap($o): void {
parent::fromMap($o);
if (isset($o['ModelYearCode'])) $this->ModelYearCode = $o['ModelYearCode'];
if (isset($o['HalfModelYearCode'])) $this->HalfModelYearCode = $o['HalfModelYearCode'];
if (isset($o['ActiveOffers'])) $this->ActiveOffers = JsonConverters::fromArray('int', $o['ActiveOffers']);
if (isset($o['EligibleForMotability'])) $this->EligibleForMotability = $o['EligibleForMotability'];
if (isset($o['NearestPort'])) $this->NearestPort = $o['NearestPort'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = parent::jsonSerialize();
if (isset($this->ModelYearCode)) $o['ModelYearCode'] = $this->ModelYearCode;
if (isset($this->HalfModelYearCode)) $o['HalfModelYearCode'] = $this->HalfModelYearCode;
if (isset($this->ActiveOffers)) $o['ActiveOffers'] = JsonConverters::toArray('int', $this->ActiveOffers);
if (isset($this->EligibleForMotability)) $o['EligibleForMotability'] = $this->EligibleForMotability;
if (isset($this->NearestPort)) $o['NearestPort'] = $this->NearestPort;
return empty($o) ? new class(){} : $o;
}
}
class CarConfiguratorStockMatch implements JsonSerializable
{
public function __construct(
/** @var CarConfiguratorVehicle|null */
public ?CarConfiguratorVehicle $Vehicle=null,
/** @var bool|null */
public ?bool $IsSellable=null,
/** @var string|null */
public ?string $VehicleWheels=null,
/** @var string|null */
public ?string $VehicleTrim=null,
/** @var array<string>|null */
public ?array $VehicleAdditionalOptionCodes=null,
/** @var array<string>|null */
public ?array $FullModelYearDifferences=null,
/** @var array<string>|null */
public ?array $PaintDifferences=null,
/** @var array<string>|null */
public ?array $UpholsteryDifferences=null,
/** @var array<string>|null */
public ?array $WheelDifferences=null,
/** @var array<string>|null */
public ?array $TrimDifferences=null,
/** @var array<string>|null */
public ?array $EquipmentDifferences=null,
/** @var array<string>|null */
public ?array $Differences=null,
/** @var bool|null */
public ?bool $ExactMatch=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Vehicle'])) $this->Vehicle = JsonConverters::from('CarConfiguratorVehicle', $o['Vehicle']);
if (isset($o['IsSellable'])) $this->IsSellable = $o['IsSellable'];
if (isset($o['VehicleWheels'])) $this->VehicleWheels = $o['VehicleWheels'];
if (isset($o['VehicleTrim'])) $this->VehicleTrim = $o['VehicleTrim'];
if (isset($o['VehicleAdditionalOptionCodes'])) $this->VehicleAdditionalOptionCodes = JsonConverters::fromArray('string', $o['VehicleAdditionalOptionCodes']);
if (isset($o['FullModelYearDifferences'])) $this->FullModelYearDifferences = JsonConverters::fromArray('string', $o['FullModelYearDifferences']);
if (isset($o['PaintDifferences'])) $this->PaintDifferences = JsonConverters::fromArray('string', $o['PaintDifferences']);
if (isset($o['UpholsteryDifferences'])) $this->UpholsteryDifferences = JsonConverters::fromArray('string', $o['UpholsteryDifferences']);
if (isset($o['WheelDifferences'])) $this->WheelDifferences = JsonConverters::fromArray('string', $o['WheelDifferences']);
if (isset($o['TrimDifferences'])) $this->TrimDifferences = JsonConverters::fromArray('string', $o['TrimDifferences']);
if (isset($o['EquipmentDifferences'])) $this->EquipmentDifferences = JsonConverters::fromArray('string', $o['EquipmentDifferences']);
if (isset($o['Differences'])) $this->Differences = JsonConverters::fromArray('string', $o['Differences']);
if (isset($o['ExactMatch'])) $this->ExactMatch = $o['ExactMatch'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Vehicle)) $o['Vehicle'] = JsonConverters::to('CarConfiguratorVehicle', $this->Vehicle);
if (isset($this->IsSellable)) $o['IsSellable'] = $this->IsSellable;
if (isset($this->VehicleWheels)) $o['VehicleWheels'] = $this->VehicleWheels;
if (isset($this->VehicleTrim)) $o['VehicleTrim'] = $this->VehicleTrim;
if (isset($this->VehicleAdditionalOptionCodes)) $o['VehicleAdditionalOptionCodes'] = JsonConverters::toArray('string', $this->VehicleAdditionalOptionCodes);
if (isset($this->FullModelYearDifferences)) $o['FullModelYearDifferences'] = JsonConverters::toArray('string', $this->FullModelYearDifferences);
if (isset($this->PaintDifferences)) $o['PaintDifferences'] = JsonConverters::toArray('string', $this->PaintDifferences);
if (isset($this->UpholsteryDifferences)) $o['UpholsteryDifferences'] = JsonConverters::toArray('string', $this->UpholsteryDifferences);
if (isset($this->WheelDifferences)) $o['WheelDifferences'] = JsonConverters::toArray('string', $this->WheelDifferences);
if (isset($this->TrimDifferences)) $o['TrimDifferences'] = JsonConverters::toArray('string', $this->TrimDifferences);
if (isset($this->EquipmentDifferences)) $o['EquipmentDifferences'] = JsonConverters::toArray('string', $this->EquipmentDifferences);
if (isset($this->Differences)) $o['Differences'] = JsonConverters::toArray('string', $this->Differences);
if (isset($this->ExactMatch)) $o['ExactMatch'] = $this->ExactMatch;
return empty($o) ? new class(){} : $o;
}
}
class CarConfiguratorStockMatches implements JsonSerializable
{
public function __construct(
/** @var array<CarConfiguratorStockMatch>|null */
public ?array $SellableMatches=null,
/** @var array<CarConfiguratorStockMatch>|null */
public ?array $NonSellableMatches=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['SellableMatches'])) $this->SellableMatches = JsonConverters::fromArray('CarConfiguratorStockMatch', $o['SellableMatches']);
if (isset($o['NonSellableMatches'])) $this->NonSellableMatches = JsonConverters::fromArray('CarConfiguratorStockMatch', $o['NonSellableMatches']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->SellableMatches)) $o['SellableMatches'] = JsonConverters::toArray('CarConfiguratorStockMatch', $this->SellableMatches);
if (isset($this->NonSellableMatches)) $o['NonSellableMatches'] = JsonConverters::toArray('CarConfiguratorStockMatch', $this->NonSellableMatches);
return empty($o) ? new class(){} : $o;
}
}
class CarConfiguratorStockResponse implements JsonSerializable
{
public function __construct(
/** @var int */
public int $TotalVehicles=0,
/** @var CarConfiguratorResponse|null */
public ?CarConfiguratorResponse $CarConfiguratorResponse=null,
/** @var CarConfiguratorStockMatches|null */
public ?CarConfiguratorStockMatches $ExactMatches=null,
/** @var CarConfiguratorStockMatches|null */
public ?CarConfiguratorStockMatches $CloseMatches=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['TotalVehicles'])) $this->TotalVehicles = $o['TotalVehicles'];
if (isset($o['CarConfiguratorResponse'])) $this->CarConfiguratorResponse = JsonConverters::from('CarConfiguratorResponse', $o['CarConfiguratorResponse']);
if (isset($o['ExactMatches'])) $this->ExactMatches = JsonConverters::from('CarConfiguratorStockMatches', $o['ExactMatches']);
if (isset($o['CloseMatches'])) $this->CloseMatches = JsonConverters::from('CarConfiguratorStockMatches', $o['CloseMatches']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->TotalVehicles)) $o['TotalVehicles'] = $this->TotalVehicles;
if (isset($this->CarConfiguratorResponse)) $o['CarConfiguratorResponse'] = JsonConverters::to('CarConfiguratorResponse', $this->CarConfiguratorResponse);
if (isset($this->ExactMatches)) $o['ExactMatches'] = JsonConverters::to('CarConfiguratorStockMatches', $this->ExactMatches);
if (isset($this->CloseMatches)) $o['CloseMatches'] = JsonConverters::to('CarConfiguratorStockMatches', $this->CloseMatches);
return empty($o) ? new class(){} : $o;
}
}
class CarConfiguratorStockRequest implements IPost, JsonSerializable
{
public function __construct(
/** @description The configurator code to search on */
// @ApiMember(Description="The configurator code to search on", IsRequired=true)
/** @var string */
public string $ConfiguratorCode='',
/** @description Whether to return sellable vehicles */
// @ApiMember(Description="Whether to return sellable vehicles")
/** @var bool|null */
public ?bool $IsSellable=null,
/** @description Whether to only get exact matches */
// @ApiMember(Description="Whether to only get exact matches")
/** @var bool|null */
public ?bool $ExactMatch=null,
/** @description Whether to restrict vehicles response to a GSSN */
// @ApiMember(Description="Whether to restrict vehicles response to a GSSN")
/** @var string|null */
public ?string $GSSN=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ConfiguratorCode'])) $this->ConfiguratorCode = $o['ConfiguratorCode'];
if (isset($o['IsSellable'])) $this->IsSellable = $o['IsSellable'];
if (isset($o['ExactMatch'])) $this->ExactMatch = $o['ExactMatch'];
if (isset($o['GSSN'])) $this->GSSN = $o['GSSN'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ConfiguratorCode)) $o['ConfiguratorCode'] = $this->ConfiguratorCode;
if (isset($this->IsSellable)) $o['IsSellable'] = $this->IsSellable;
if (isset($this->ExactMatch)) $o['ExactMatch'] = $this->ExactMatch;
if (isset($this->GSSN)) $o['GSSN'] = $this->GSSN;
return empty($o) ? new class(){} : $o;
}
}
PHP CarConfiguratorStockRequest 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/CarConfiguratorStock HTTP/1.1
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
ConfiguratorCode: String,
IsSellable: False,
ExactMatch: False,
GSSN: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
TotalVehicles: 4,
CarConfiguratorResponse:
{
Name: String,
KeyInformation:
{
BM7NST: String,
ConfigurationDate: String,
ModelYear: String,
HalfYear: String
},
OrderingOptions:
{
Interior:
[
String
],
Exterior:
[
String
],
Options:
[
String
],
WheelOptions:
[
{
Code: String,
Description: String,
StandardFlag: String,
Price: 0,
Category: String,
Importance: String
}
],
TrimOptions:
[
{
Code: String,
Description: String,
StandardFlag: String,
Price: 0,
Category: String,
Importance: String
}
],
OptionCodes:
[
{
Code: String,
Description: String,
StandardFlag: String,
Price: 0,
Category: String,
Importance: String
}
]
},
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
},
ConfiguratorCode: String
},
ExactMatches:
{
SellableMatches:
[
{
}
],
NonSellableMatches:
[
{
}
]
},
CloseMatches:
{
SellableMatches:
[
{
}
],
NonSellableMatches:
[
{
}
]
}
}