| GET | /v1/{VehicleType}/Vehicle/{vehicleIdentifier} | Get vehicle data by commission number | This endpoint calls Vehicle Data API and returns the data that populates the car details page in OneAdmin |
|---|
# frozen_string_literal: true
# encoding: utf-8
require 'json'
require 'servicestack'
class OfferVehicle
include ServiceStack::DTO
# @return [String]
attr_accessor :retail_price_ex_v_a_t
def self.properties
{
retail_price_ex_v_a_t: { name: 'retailPriceExVAT' },
}
end
end
class Offer
include ServiceStack::DTO
# @return [Integer]
attr_accessor :id
# @return [String]
attr_accessor :offer_type
# @return [String]
attr_accessor :campaign_name
# @return [String]
attr_accessor :from
# @return [String]
attr_accessor :to
# @return [String]
attr_accessor :value
# @return [BigDecimal]
attr_accessor :net
# @return [OfferVehicle]
attr_accessor :offer_vehicle
# @return [TrueClass]
attr_accessor :pending
# @return [String]
attr_accessor :document_url
# @return [TrueClass]
attr_accessor :personalised
# @return [TrueClass]
attr_accessor :is_personalised_monetary_offer
# @return [TrueClass]
attr_accessor :campaign_v_i_p_discount
# @return [BigDecimal]
attr_accessor :offer_value_net
# @return [TrueClass]
attr_accessor :campaign_government_grant
def self.properties
{
id: { name: 'id' },
offer_type: { name: 'offerType' },
campaign_name: { name: 'campaignName' },
from: { name: 'from' },
to: { name: 'to' },
value: { name: 'value' },
net: { name: 'net' },
offer_vehicle: { name: 'offerVehicle', type: OfferVehicle },
pending: { name: 'pending' },
document_url: { name: 'documentUrl' },
personalised: { name: 'personalised' },
is_personalised_monetary_offer: { name: 'isPersonalisedMonetaryOffer' },
campaign_v_i_p_discount: { name: 'campaignVIPDiscount' },
offer_value_net: { name: 'offerValueNet' },
campaign_government_grant: { name: 'campaignGovernmentGrant' },
}
end
end
class PersonalisedOffer < Offer
# @return [String]
attr_accessor :category
# @return [String]
attr_accessor :description
# @return [String]
attr_accessor :reference
# @return [Integer]
attr_accessor :campaign_id
# @return [TrueClass]
attr_accessor :certificate_required
# @return [TrueClass]
attr_accessor :auto_select
def self.properties
{
category: { name: 'category' },
description: { name: 'description' },
reference: { name: 'reference' },
campaign_id: { name: 'campaignId' },
certificate_required: { name: 'certificateRequired' },
auto_select: { name: 'autoSelect' },
}
end
end
class Message
include ServiceStack::DTO
# @return [Integer]
attr_accessor :id
# @return [String]
attr_accessor :vin
# @return [Integer]
attr_accessor :campaign_id
# @return [String]
attr_accessor :value
# @return [String]
attr_accessor :campaign_description
# @return [String]
attr_accessor :from
# @return [String]
attr_accessor :to
# @return [String]
attr_accessor :document_url
def self.properties
{
id: { name: 'id' },
vin: { name: 'vin' },
campaign_id: { name: 'campaignId' },
value: { name: 'value' },
campaign_description: { name: 'campaignDescription' },
from: { name: 'from' },
to: { name: 'to' },
document_url: { name: 'documentUrl' },
}
end
end
class OfferHistory
include ServiceStack::DTO
# @return [Integer]
attr_accessor :id
# @return [String]
attr_accessor :audit_type
# @return [String]
attr_accessor :offer_type
# @return [String]
attr_accessor :source
# @return [String]
attr_accessor :from
# @return [String]
attr_accessor :to
# @return [TrueClass]
attr_accessor :personalised
# @return [String]
attr_accessor :value
# @return [String]
attr_accessor :net
# @return [String]
attr_accessor :vat
# @return [String]
attr_accessor :description
# @return [String]
attr_accessor :vin
# @return [String]
attr_accessor :gssn
# @return [String]
attr_accessor :creation
# @return [String]
attr_accessor :modified
# @return [String]
attr_accessor :user_id
# @return [Integer]
attr_accessor :user
# @return [Integer]
attr_accessor :offer_id
# @return [String]
attr_accessor :commission_number
# @return [Integer]
attr_accessor :campaign_id
# @return [String]
attr_accessor :campaign_description
# @return [DateTime]
attr_accessor :creation_date
# @return [TrueClass]
attr_accessor :is_used_car_offer
def self.properties
{
id: { name: 'id' },
audit_type: { name: 'auditType' },
offer_type: { name: 'offerType' },
source: { name: 'source' },
from: { name: 'from' },
to: { name: 'to' },
personalised: { name: 'personalised' },
value: { name: 'value' },
net: { name: 'net' },
vat: { name: 'vat' },
description: { name: 'description' },
vin: { name: 'vin' },
gssn: { name: 'gssn' },
creation: { name: 'creation' },
modified: { name: 'modified' },
user_id: { name: 'userId' },
user: { name: 'user' },
offer_id: { name: 'offerId' },
commission_number: { name: 'commissionNumber' },
campaign_id: { name: 'campaignId' },
campaign_description: { name: 'campaignDescription' },
creation_date: { name: 'creationDate', type: DateTime },
is_used_car_offer: { name: 'isUsedCarOffer' },
}
end
end
class FinanceOffer
include ServiceStack::DTO
# @return [String]
attr_accessor :campaign_description
# @return [String]
attr_accessor :terms_and_conditions
# @return [String]
attr_accessor :label
# @return [Integer]
attr_accessor :campaign_id
# @return [String]
attr_accessor :document_url
# @return [String]
attr_accessor :from
# @return [Integer]
attr_accessor :id
# @return [String]
attr_accessor :to
# @return [String]
attr_accessor :value
# @return [String]
attr_accessor :vin
# @return [TrueClass]
attr_accessor :enabled
# @return [TrueClass]
attr_accessor :pending
# @return [String]
attr_accessor :offer_type
def self.properties
{
campaign_description: { name: 'campaignDescription' },
terms_and_conditions: { name: 'termsAndConditions' },
label: { name: 'label' },
campaign_id: { name: 'campaignId' },
document_url: { name: 'documentUrl' },
from: { name: 'from' },
id: { name: 'id' },
to: { name: 'to' },
value: { name: 'value' },
vin: { name: 'vin' },
enabled: { name: 'enabled' },
pending: { name: 'pending' },
offer_type: { name: 'offerType' },
}
end
end
class VehicleByIdentifierResponse
include ServiceStack::DTO
# @return [List]
attr_accessor :campaign_offers
# @return [List]
attr_accessor :campaign_personalised_offers
# @return [List]
attr_accessor :campaign_voucher_offers
# @return [List]
attr_accessor :campaign_government_grant_offers
# @return [List]
attr_accessor :campaign_messages
# @return [List]
attr_accessor :offer_histories
# @return [List]
attr_accessor :finance_offers
def self.properties
{
campaign_offers: { name: 'campaignOffers', type: [Offer] },
campaign_personalised_offers: { name: 'campaignPersonalisedOffers', type: [PersonalisedOffer] },
campaign_voucher_offers: { name: 'campaignVoucherOffers', type: [PersonalisedOffer] },
campaign_government_grant_offers: { name: 'campaignGovernmentGrantOffers', type: [Offer] },
campaign_messages: { name: 'campaignMessages', type: [Message] },
offer_histories: { name: 'offerHistories', type: [OfferHistory] },
finance_offers: { name: 'financeOffers', type: [FinanceOffer] },
}
end
end
class VehicleDataBase
include ServiceStack::DTO
# @return [String]
attr_accessor :vin
# @return [String]
attr_accessor :description
# @return [String]
attr_accessor :model
# @return [String]
attr_accessor :otr
# @return [String]
attr_accessor :retail_price_ex_v_a_t
# @return [String]
attr_accessor :actual_price
# @return [String]
attr_accessor :p11_d
# @return [String]
attr_accessor :fuel_type
# @return [String]
attr_accessor :transmission
# @return [String]
attr_accessor :transmission_type
# @return [String]
attr_accessor :colour
# @return [String]
attr_accessor :colour_code
# @return [String]
attr_accessor :colour_description
# @return [String]
attr_accessor :commission_number
# @return [TrueClass]
attr_accessor :offer_available
# @return [Integer]
attr_accessor :campaign_discount_offer_total
# @return [Integer]
attr_accessor :campaign_discount_offer_total_current
# @return [Integer]
attr_accessor :campaign_discount_offer_total_pending
# @return [Integer]
attr_accessor :campaign_service_offer_total
# @return [Integer]
attr_accessor :campaign_service_offer_total_current
# @return [Integer]
attr_accessor :campaign_service_offer_total_pending
# @return [Integer]
attr_accessor :campaign_custom_offer_total
# @return [Integer]
attr_accessor :campaign_personalised_offer_total_current
# @return [Integer]
attr_accessor :campaign_personalised_offer_total_pending
# @return [Integer]
attr_accessor :campaign_personalised_offer_total
# @return [Integer]
attr_accessor :campaign_custom_offer_total_current
# @return [Integer]
attr_accessor :campaign_custom_offer_total_pending
# @return [Integer]
attr_accessor :campaign_other_offer_total
# @return [Integer]
attr_accessor :campaign_other_offer_total_current
# @return [Integer]
attr_accessor :campaign_other_offer_total_pending
# @return [Integer]
attr_accessor :retailer_discount_offer_total
# @return [Integer]
attr_accessor :retailer_discount_offer_total_current
# @return [Integer]
attr_accessor :retailer_discount_offer_total_pending
# @return [Integer]
attr_accessor :retailer_service_offer_total
# @return [Integer]
attr_accessor :retailer_service_offer_total_current
# @return [Integer]
attr_accessor :retailer_service_offer_total_pending
# @return [Integer]
attr_accessor :retailer_custom_offer_total
# @return [Integer]
attr_accessor :retailer_custom_offer_total_current
# @return [Integer]
attr_accessor :retailer_custom_offer_total_pending
# @return [Integer]
attr_accessor :retailer_warranty_offer_total
# @return [Integer]
attr_accessor :retailer_warranty_offer_total_current
# @return [Integer]
attr_accessor :retailer_warranty_offer_total_pending
# @return [Integer]
attr_accessor :retailer_offer_total
# @return [Integer]
attr_accessor :retailer_offer_total_current
# @return [Integer]
attr_accessor :retailer_offer_total_pending
# @return [Integer]
attr_accessor :campaign_offer_total
# @return [Integer]
attr_accessor :campaign_offer_total_current
# @return [Integer]
attr_accessor :campaign_offer_total_pending
# @return [Integer]
attr_accessor :campaign_and_offer_total
# @return [Integer]
attr_accessor :campaign_and_offer_total_current
# @return [Integer]
attr_accessor :campaign_and_offer_total_pending
# @return [Integer]
attr_accessor :offer_total
# @return [Integer]
attr_accessor :offer_total_current
# @return [Integer]
attr_accessor :offer_total_pending
# @return [String]
attr_accessor :creation
# @return [String]
attr_accessor :modified
# @return [Integer]
attr_accessor :electric_range
# @return [Integer]
attr_accessor :electric_consumption
# @return [DateTime]
attr_accessor :port_arrival_date
# @return [Integer]
attr_accessor :days_since_port_arrival
# @return [BigDecimal]
attr_accessor :retail_price_inc_v_a_t
# @return [String]
attr_accessor :body_style
# @return [String]
attr_accessor :upholstery
# @return [String]
attr_accessor :upholstery_code
# @return [String]
attr_accessor :upholstery_type
# @return [List]
attr_accessor :package_names
# @return [String]
attr_accessor :line
# @return [String]
attr_accessor :mapped_line
# @return [BigDecimal]
attr_accessor :current_retailer_offer_price
# @return [String]
attr_accessor :retail_price
# @return [TrueClass]
attr_accessor :vat_qualifying
# @return [Integer]
attr_accessor :retailer_id
# @return [String]
attr_accessor :gssn_id
# @return [TrueClass]
attr_accessor :no_image
# @return [String]
attr_accessor :image_url
# @return [TrueClass]
attr_accessor :is_available_online
# @return [TrueClass]
attr_accessor :is_back_ordered
# @return [String]
attr_accessor :creation_date
# @return [String]
attr_accessor :maintenance_date
# @return [String]
attr_accessor :registration_number
# @return [DateTime]
attr_accessor :registration_date
# @return [Integer]
attr_accessor :mileage
# @return [DateTime]
attr_accessor :trade_in_date
# @return [String]
attr_accessor :source
# @return [String]
attr_accessor :vehicle_type
# @return [String]
attr_accessor :offer_amount
# @return [String]
attr_accessor :offer_expiry
# @return [Array]
attr_accessor :active_offers
# @return [Integer]
attr_accessor :campaign_messages_total
# @return [TrueClass]
attr_accessor :under_offer
# @return [TrueClass]
attr_accessor :is_display_stock
# @return [String]
attr_accessor :display_retailer
# @return [String]
attr_accessor :display_retailer_gssn_id
# @return [String]
attr_accessor :location
# @return [String]
attr_accessor :account
# @return [String]
attr_accessor :account_type
# @return [String]
attr_accessor :usage_code
# @return [String]
attr_accessor :bm7_n_s_t
# @return [TrueClass]
attr_accessor :is_sellable
# @return [TrueClass]
attr_accessor :secured
# @return [TrueClass]
attr_accessor :specialist
# @return [TrueClass]
attr_accessor :is_motability_retailer
# @return [String]
attr_accessor :upholstery_description
# @return [TrueClass]
attr_accessor :in_back_order_account
# @return [String]
attr_accessor :full_model_year_code
# @return [String]
attr_accessor :baumuster
# @return [TrueClass]
attr_accessor :is_motability
# @return [BigDecimal]
attr_accessor :pip_advance_rental_gross
# @return [BigDecimal]
attr_accessor :wpms_advance_rental_gross
# @return [List]
attr_accessor :isp_vehicle_customer_descriptions
# @return [TrueClass]
attr_accessor :eligible_for_ma_transfer
# @return [String]
attr_accessor :confirmed_production_date
# @return [String]
attr_accessor :forecasted_arrival_date
def self.properties
{
vin: { name: 'vin' },
description: { name: 'description' },
model: { name: 'model' },
otr: { name: 'otr' },
retail_price_ex_v_a_t: { name: 'retailPriceExVAT' },
actual_price: { name: 'actualPrice' },
p11_d: { name: 'p11D' },
fuel_type: { name: 'fuelType' },
transmission: { name: 'transmission' },
transmission_type: { name: 'transmissionType' },
colour: { name: 'colour' },
colour_code: { name: 'colourCode' },
colour_description: { name: 'colourDescription' },
commission_number: { name: 'commissionNumber' },
offer_available: { name: 'offerAvailable' },
campaign_discount_offer_total: { name: 'campaignDiscountOfferTotal' },
campaign_discount_offer_total_current: { name: 'campaignDiscountOfferTotalCurrent' },
campaign_discount_offer_total_pending: { name: 'campaignDiscountOfferTotalPending' },
campaign_service_offer_total: { name: 'campaignServiceOfferTotal' },
campaign_service_offer_total_current: { name: 'campaignServiceOfferTotalCurrent' },
campaign_service_offer_total_pending: { name: 'campaignServiceOfferTotalPending' },
campaign_custom_offer_total: { name: 'campaignCustomOfferTotal' },
campaign_personalised_offer_total_current: { name: 'campaignPersonalisedOfferTotalCurrent' },
campaign_personalised_offer_total_pending: { name: 'campaignPersonalisedOfferTotalPending' },
campaign_personalised_offer_total: { name: 'campaignPersonalisedOfferTotal' },
campaign_custom_offer_total_current: { name: 'campaignCustomOfferTotalCurrent' },
campaign_custom_offer_total_pending: { name: 'campaignCustomOfferTotalPending' },
campaign_other_offer_total: { name: 'campaignOtherOfferTotal' },
campaign_other_offer_total_current: { name: 'campaignOtherOfferTotalCurrent' },
campaign_other_offer_total_pending: { name: 'campaignOtherOfferTotalPending' },
retailer_discount_offer_total: { name: 'retailerDiscountOfferTotal' },
retailer_discount_offer_total_current: { name: 'retailerDiscountOfferTotalCurrent' },
retailer_discount_offer_total_pending: { name: 'retailerDiscountOfferTotalPending' },
retailer_service_offer_total: { name: 'retailerServiceOfferTotal' },
retailer_service_offer_total_current: { name: 'retailerServiceOfferTotalCurrent' },
retailer_service_offer_total_pending: { name: 'retailerServiceOfferTotalPending' },
retailer_custom_offer_total: { name: 'retailerCustomOfferTotal' },
retailer_custom_offer_total_current: { name: 'retailerCustomOfferTotalCurrent' },
retailer_custom_offer_total_pending: { name: 'retailerCustomOfferTotalPending' },
retailer_warranty_offer_total: { name: 'retailerWarrantyOfferTotal' },
retailer_warranty_offer_total_current: { name: 'retailerWarrantyOfferTotalCurrent' },
retailer_warranty_offer_total_pending: { name: 'retailerWarrantyOfferTotalPending' },
retailer_offer_total: { name: 'retailerOfferTotal' },
retailer_offer_total_current: { name: 'retailerOfferTotalCurrent' },
retailer_offer_total_pending: { name: 'retailerOfferTotalPending' },
campaign_offer_total: { name: 'campaignOfferTotal' },
campaign_offer_total_current: { name: 'campaignOfferTotalCurrent' },
campaign_offer_total_pending: { name: 'campaignOfferTotalPending' },
campaign_and_offer_total: { name: 'campaignAndOfferTotal' },
campaign_and_offer_total_current: { name: 'campaignAndOfferTotalCurrent' },
campaign_and_offer_total_pending: { name: 'campaignAndOfferTotalPending' },
offer_total: { name: 'offerTotal' },
offer_total_current: { name: 'offerTotalCurrent' },
offer_total_pending: { name: 'offerTotalPending' },
creation: { name: 'creation' },
modified: { name: 'modified' },
electric_range: { name: 'electricRange' },
electric_consumption: { name: 'electricConsumption' },
port_arrival_date: { name: 'portArrivalDate', type: DateTime },
days_since_port_arrival: { name: 'daysSincePortArrival' },
retail_price_inc_v_a_t: { name: 'retailPriceIncVAT' },
body_style: { name: 'bodyStyle' },
upholstery: { name: 'upholstery' },
upholstery_code: { name: 'upholsteryCode' },
upholstery_type: { name: 'upholsteryType' },
package_names: { name: 'packageNames' },
line: { name: 'line' },
mapped_line: { name: 'mappedLine' },
current_retailer_offer_price: { name: 'currentRetailerOfferPrice' },
retail_price: { name: 'retailPrice' },
vat_qualifying: { name: 'vatQualifying' },
retailer_id: { name: 'retailerId' },
gssn_id: { name: 'gssnId' },
no_image: { name: 'noImage' },
image_url: { name: 'imageUrl' },
is_available_online: { name: 'isAvailableOnline' },
is_back_ordered: { name: 'isBackOrdered' },
creation_date: { name: 'creationDate' },
maintenance_date: { name: 'maintenanceDate' },
registration_number: { name: 'registrationNumber' },
registration_date: { name: 'registrationDate', type: DateTime },
mileage: { name: 'mileage' },
trade_in_date: { name: 'tradeInDate', type: DateTime },
source: { name: 'source' },
vehicle_type: { name: 'vehicleType' },
offer_amount: { name: 'offerAmount' },
offer_expiry: { name: 'offerExpiry' },
active_offers: { name: 'activeOffers' },
campaign_messages_total: { name: 'campaignMessagesTotal' },
under_offer: { name: 'underOffer' },
is_display_stock: { name: 'isDisplayStock' },
display_retailer: { name: 'displayRetailer' },
display_retailer_gssn_id: { name: 'displayRetailerGssnId' },
location: { name: 'location' },
account: { name: 'account' },
account_type: { name: 'accountType' },
usage_code: { name: 'usageCode' },
bm7_n_s_t: { name: 'bm7NST' },
is_sellable: { name: 'isSellable' },
secured: { name: 'secured' },
specialist: { name: 'specialist' },
is_motability_retailer: { name: 'isMotabilityRetailer' },
upholstery_description: { name: 'upholsteryDescription' },
in_back_order_account: { name: 'inBackOrderAccount' },
full_model_year_code: { name: 'fullModelYearCode' },
baumuster: { name: 'baumuster' },
is_motability: { name: 'isMotability' },
pip_advance_rental_gross: { name: 'pipAdvanceRentalGross' },
wpms_advance_rental_gross: { name: 'wpmsAdvanceRentalGross' },
isp_vehicle_customer_descriptions: { name: 'ispVehicleCustomerDescriptions' },
eligible_for_ma_transfer: { name: 'eligibleForMaTransfer' },
confirmed_production_date: { name: 'confirmedProductionDate' },
forecasted_arrival_date: { name: 'forecastedArrivalDate' },
}
end
end
class VehicleData < VehicleDataBase
# @return [String]
attr_accessor :engine
def self.properties
{
engine: { name: 'engine' },
}
end
end
class Equipment
include ServiceStack::DTO
# @return [Integer]
attr_accessor :id
# @return [String]
attr_accessor :code
# @return [String]
attr_accessor :description
def self.properties
{
id: { name: 'id' },
code: { name: 'code' },
description: { name: 'description' },
}
end
end
class VehicleIdentifierData < VehicleData
# @return [String]
attr_accessor :retailer
# @return [TrueClass]
attr_accessor :has_motability_error
# @return [List]
attr_accessor :equipment
# @return [String]
attr_accessor :vehicle_class
def self.properties
{
retailer: { name: 'retailer' },
has_motability_error: { name: 'hasMotabilityError' },
equipment: { name: 'equipment', type: [Equipment] },
vehicle_class: { name: 'vehicleClass' },
}
end
end
class VehicleByCommissionNumberResponse < VehicleByIdentifierResponse
# @return [VehicleIdentifierData]
attr_accessor :vehicle
def self.properties
{
vehicle: { name: 'vehicle', type: VehicleIdentifierData },
}
end
end
class VehicleByCommissionNumberRequest
include ServiceStack::DTO
# @return [String]
attr_accessor :vehicle_identifier
# @return [String]
attr_accessor :vehicle_type
def self.properties
{
vehicle_identifier: { name: 'vehicleIdentifier' },
vehicle_type: { name: 'vehicleType' },
}
end
def response_type() = VehicleByCommissionNumberResponse
def get_type_name() = 'VehicleByCommissionNumberRequest'
end
Ruby VehicleByCommissionNumberRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /v1/{VehicleType}/Vehicle/{vehicleIdentifier} HTTP/1.1
Host: uat-api-vehicle-mgt-mb-dhc.rapp-customers.co.uk
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length
{"vehicle":{"retailer":"String","hasMotabilityError":false,"equipment":[{"id":0,"code":"String","description":"String"}],"vehicleClass":"String","engine":"String","vin":"String","description":"String","model":"String","otr":"String","retailPriceExVAT":"String","actualPrice":"String","p11D":"String","fuelType":"String","transmission":"String","transmissionType":"String","colour":"String","colourCode":"String","colourDescription":"String","commissionNumber":"String","offerAvailable":false,"campaignDiscountOfferTotal":0,"campaignDiscountOfferTotalCurrent":0,"campaignDiscountOfferTotalPending":0,"campaignServiceOfferTotal":0,"campaignServiceOfferTotalCurrent":0,"campaignServiceOfferTotalPending":0,"campaignCustomOfferTotal":0,"campaignPersonalisedOfferTotalCurrent":0,"campaignPersonalisedOfferTotalPending":0,"campaignPersonalisedOfferTotal":0,"campaignCustomOfferTotalCurrent":0,"campaignCustomOfferTotalPending":0,"campaignOtherOfferTotal":0,"campaignOtherOfferTotalCurrent":0,"campaignOtherOfferTotalPending":0,"retailerDiscountOfferTotal":0,"retailerDiscountOfferTotalCurrent":0,"retailerDiscountOfferTotalPending":0,"retailerServiceOfferTotal":0,"retailerServiceOfferTotalCurrent":0,"retailerServiceOfferTotalPending":0,"retailerCustomOfferTotal":0,"retailerCustomOfferTotalCurrent":0,"retailerCustomOfferTotalPending":0,"retailerWarrantyOfferTotal":0,"retailerWarrantyOfferTotalCurrent":0,"retailerWarrantyOfferTotalPending":0,"retailerOfferTotal":0,"retailerOfferTotalCurrent":0,"retailerOfferTotalPending":0,"campaignOfferTotal":0,"campaignOfferTotalCurrent":0,"campaignOfferTotalPending":0,"campaignAndOfferTotal":0,"campaignAndOfferTotalCurrent":0,"campaignAndOfferTotalPending":0,"offerTotal":0,"offerTotalCurrent":0,"offerTotalPending":0,"creation":"String","modified":"String","electricRange":0,"electricConsumption":0,"portArrivalDate":"\/Date(-62135596800000-0000)\/","daysSincePortArrival":0,"retailPriceIncVAT":0,"bodyStyle":"String","upholstery":"String","upholsteryCode":"String","upholsteryType":"String","packageNames":["String"],"line":"String","mappedLine":"String","currentRetailerOfferPrice":0,"retailPrice":"String","vatQualifying":false,"retailerId":0,"gssnId":"String","noImage":false,"imageUrl":"String","isAvailableOnline":false,"isBackOrdered":false,"creationDate":"String","maintenanceDate":"String","registrationNumber":"String","registrationDate":"\/Date(-62135596800000-0000)\/","mileage":0,"tradeInDate":"\/Date(-62135596800000-0000)\/","source":"String","vehicleType":"String","offerAmount":"String","offerExpiry":"String","activeOffers":[0],"campaignMessagesTotal":0,"underOffer":false,"isDisplayStock":false,"displayRetailer":"String","displayRetailerGssnId":"String","location":"String","account":"String","accountType":"String","usageCode":"String","bm7NST":"String","isSellable":false,"secured":false,"specialist":false,"isMotabilityRetailer":false,"upholsteryDescription":"String","inBackOrderAccount":false,"fullModelYearCode":"String","baumuster":"String","isMotability":false,"pipAdvanceRentalGross":0,"wpmsAdvanceRentalGross":0,"ispVehicleCustomerDescriptions":["String"],"eligibleForMaTransfer":false,"confirmedProductionDate":"String","forecastedArrivalDate":"String"},"campaignOffers":[{"id":0,"offerType":"String","campaignName":"String","from":"String","to":"String","value":"String","net":0,"offerVehicle":{"retailPriceExVAT":"String"},"pending":false,"documentUrl":"String","personalised":false,"isPersonalisedMonetaryOffer":false,"campaignVIPDiscount":false,"offerValueNet":0,"campaignGovernmentGrant":false}],"campaignPersonalisedOffers":[{"category":"String","description":"String","reference":"String","campaignId":0,"certificateRequired":false,"autoSelect":false,"id":0,"offerType":"String","campaignName":"String","from":"String","to":"String","value":"String","net":0,"offerVehicle":{"retailPriceExVAT":"String"},"pending":false,"documentUrl":"String","personalised":false,"isPersonalisedMonetaryOffer":false,"campaignVIPDiscount":false,"offerValueNet":0,"campaignGovernmentGrant":false}],"campaignVoucherOffers":[{"category":"String","description":"String","reference":"String","campaignId":0,"certificateRequired":false,"autoSelect":false,"id":0,"offerType":"String","campaignName":"String","from":"String","to":"String","value":"String","net":0,"offerVehicle":{"retailPriceExVAT":"String"},"pending":false,"documentUrl":"String","personalised":false,"isPersonalisedMonetaryOffer":false,"campaignVIPDiscount":false,"offerValueNet":0,"campaignGovernmentGrant":false}],"campaignGovernmentGrantOffers":[{"id":0,"offerType":"String","campaignName":"String","from":"String","to":"String","value":"String","net":0,"offerVehicle":{"retailPriceExVAT":"String"},"pending":false,"documentUrl":"String","personalised":false,"isPersonalisedMonetaryOffer":false,"campaignVIPDiscount":false,"offerValueNet":0,"campaignGovernmentGrant":false}],"campaignMessages":[{"id":0,"vin":"String","campaignId":0,"value":"String","campaignDescription":"String","from":"String","to":"String","documentUrl":"String"}],"offerHistories":[{"id":0,"auditType":"String","offerType":"String","source":"String","from":"String","to":"String","personalised":false,"value":"String","net":"String","vat":"String","description":"String","vin":"String","gssn":"String","creation":"String","modified":"String","userId":"String","user":0,"offerId":0,"commissionNumber":"String","campaignId":0,"campaignDescription":"String","creationDate":"\/Date(-62135596800000-0000)\/","isUsedCarOffer":false}],"financeOffers":[{"campaignDescription":"String","termsAndConditions":"String","label":"String","campaignId":0,"documentUrl":"String","from":"String","id":0,"to":"String","value":"String","vin":"String","enabled":false,"pending":false,"offerType":"String"}]}