# frozen_string_literal: true # encoding: utf-8 # Options: =begin Date: 2026-10-22 06:52:33 Version: 10.20 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://uat-api-vehicle-mgt-mb-dhc.rapp-customers.co.uk #MakePartial: True #MakeVirtual: True #MakeInternal: False #MakeDataContractsExtensible: False #AddReturnMarker: True #AddDescriptionAsComments: True #AddDataContractAttributes: False #AddIndexesToDataMembers: False #AddGeneratedCodeAttributes: False #AddResponseStatus: False #AddImplicitVersion: #InitializeCollections: False #ExportValueTypes: False IncludeTypes: AllAvailableVehiclesCsvRequest.* #ExcludeTypes: #AddNamespaces: #AddDefaultXmlNamespace: http://schemas.servicestack.net/types =end require 'json' require 'servicestack' module IReturn def response_type() = T def get_type_name() = 'IReturn' end module IGet end class BaseAllAvailableVehiclesRequest include ServiceStack::DTO # @return [String] attr_accessor :vehicle_type # @return [TrueClass] attr_accessor :include_back_order_accounts def self.properties { vehicle_type: { name: 'vehicleType' }, include_back_order_accounts: { name: 'includeBackOrderAccounts' }, } end end class BasicBackOrderVehicle include ServiceStack::DTO # @return [String] attr_accessor :commission_number # @return [String] attr_accessor :description # @return [String] attr_accessor :model # @return [String] attr_accessor :colour # @return [String] attr_accessor :fuel_type # @return [String] attr_accessor :transmission # @return [String] attr_accessor :packages # @return [String] attr_accessor :lines # @return [String] attr_accessor :upholstery # @return [String] attr_accessor :emission_combined # @return [BigDecimal] attr_accessor :actual_price # @return [String] attr_accessor :usage_code # @return [TrueClass] attr_accessor :secured # @return [String] attr_accessor :account # @return [String] attr_accessor :secured_time # @return [String] attr_accessor :secured_reason # @return [String] attr_accessor :secured_by_gas_id # @return [DateTime] attr_accessor :secured_date # @return [DateTime] attr_accessor :confirmed_production_date # @return [DateTime] attr_accessor :forecasted_arrival_date def self.properties { commission_number: { name: 'commissionNumber' }, description: { name: 'description' }, model: { name: 'model' }, colour: { name: 'colour' }, fuel_type: { name: 'fuelType' }, transmission: { name: 'transmission' }, packages: { name: 'packages' }, lines: { name: 'lines' }, upholstery: { name: 'upholstery' }, emission_combined: { name: 'emissionCombined' }, actual_price: { name: 'actualPrice' }, usage_code: { name: 'usageCode' }, secured: { name: 'secured' }, account: { name: 'account' }, secured_time: { name: 'securedTime' }, secured_reason: { name: 'securedReason' }, secured_by_gas_id: { name: 'securedByGasId' }, secured_date: { name: 'securedDate', type: DateTime }, confirmed_production_date: { name: 'confirmedProductionDate', type: DateTime }, forecasted_arrival_date: { name: 'forecastedArrivalDate', type: DateTime }, } end end class BackOrderVehicle < BasicBackOrderVehicle # @return [Integer] attr_accessor :id # @return [String] attr_accessor :vin # @return [String] attr_accessor :vehicle_type # @return [String] attr_accessor :vid # @return [String] attr_accessor :fin # @return [String] attr_accessor :chassis_number # @return [String] attr_accessor :model_year # @return [String] attr_accessor :model_year_code # @return [String] attr_accessor :half_model_year_code # @return [String] attr_accessor :full_model_year_code # @return [String] attr_accessor :sales_description_long # @return [String] attr_accessor :vehicle_class # @return [BigDecimal] attr_accessor :retail_price__ex_v_a_t # @return [BigDecimal] attr_accessor :retail_price__inc_v_a_t # @return [BigDecimal] attr_accessor :otr # @return [String] attr_accessor :body_style # @return [String] attr_accessor :product_range # @return [String] attr_accessor :engine # @return [TrueClass] attr_accessor :is_a_m_g # @return [String] attr_accessor :colour_group # @return [String] attr_accessor :upholstery_code # @return [String] attr_accessor :nst # @return [String] attr_accessor :bm7_n_s_t # @return [BigDecimal] attr_accessor :acceleration # @return [Integer] attr_accessor :boot_capacity # @return [BigDecimal] attr_accessor :top_speed # @return [String] attr_accessor :drive_concept # @return [BigDecimal] attr_accessor :combustion_power_hp # @return [BigDecimal] attr_accessor :electric_power_kw # @return [BigDecimal] attr_accessor :electric_power_hp # @return [BigDecimal] attr_accessor :combined_power_kw # @return [BigDecimal] attr_accessor :combined_power_h_p # @return [BigDecimal] attr_accessor :electric_range # @return [BigDecimal] attr_accessor :electric_consumption # @return [BigDecimal] attr_accessor :emission # @return [String] attr_accessor :emission_directive # @return [String] attr_accessor :emission_extra_urban # @return [String] attr_accessor :emission_urban # @return [String] attr_accessor :energy_efficiency_class # @return [String] attr_accessor :wltp_emission_combined # @return [String] attr_accessor :wltp_combined # @return [String] attr_accessor :wltp_low # @return [String] attr_accessor :wltp_medium # @return [String] attr_accessor :wltp_high # @return [String] attr_accessor :wltp_extra_high # @return [DateTime] attr_accessor :port_arrival_date # @return [DateTime] attr_accessor :creation_date # @return [DateTime] attr_accessor :last_updated # @return [TrueClass] attr_accessor :is_display_stock # @return [String] attr_accessor :display_stock_agent # @return [TrueClass] attr_accessor :is_specialist_car # @return [String] attr_accessor :location # @return [String] attr_accessor :cesar_id_ship_to_party # @return [TrueClass] attr_accessor :is_sellable # @return [TrueClass] attr_accessor :under_offer # @return [String] attr_accessor :baumuster def self.properties { id: { name: 'id' }, vin: { name: 'vin' }, vehicle_type: { name: 'vehicleType' }, vid: { name: 'vid' }, fin: { name: 'fin' }, chassis_number: { name: 'chassisNumber' }, model_year: { name: 'modelYear' }, model_year_code: { name: 'modelYearCode' }, half_model_year_code: { name: 'halfModelYearCode' }, full_model_year_code: { name: 'fullModelYearCode' }, sales_description_long: { name: 'salesDescriptionLong' }, vehicle_class: { name: 'vehicleClass' }, retail_price__ex_v_a_t: { name: 'retailPrice_ExVAT' }, retail_price__inc_v_a_t: { name: 'retailPrice_IncVAT' }, otr: { name: 'otr' }, body_style: { name: 'bodyStyle' }, product_range: { name: 'productRange' }, engine: { name: 'engine' }, is_a_m_g: { name: 'isAMG' }, colour_group: { name: 'colourGroup' }, upholstery_code: { name: 'upholsteryCode' }, nst: { name: 'nst' }, bm7_n_s_t: { name: 'bm7NST' }, acceleration: { name: 'acceleration' }, boot_capacity: { name: 'bootCapacity' }, top_speed: { name: 'topSpeed' }, drive_concept: { name: 'driveConcept' }, combustion_power_hp: { name: 'combustionPowerHp' }, electric_power_kw: { name: 'electricPowerKw' }, electric_power_hp: { name: 'electricPowerHp' }, combined_power_kw: { name: 'combinedPowerKw' }, combined_power_h_p: { name: 'combinedPowerHP' }, electric_range: { name: 'electricRange' }, electric_consumption: { name: 'electricConsumption' }, emission: { name: 'emission' }, emission_directive: { name: 'emissionDirective' }, emission_extra_urban: { name: 'emissionExtraUrban' }, emission_urban: { name: 'emissionUrban' }, energy_efficiency_class: { name: 'energyEfficiencyClass' }, wltp_emission_combined: { name: 'wltpEmissionCombined' }, wltp_combined: { name: 'wltpCombined' }, wltp_low: { name: 'wltpLow' }, wltp_medium: { name: 'wltpMedium' }, wltp_high: { name: 'wltpHigh' }, wltp_extra_high: { name: 'wltpExtraHigh' }, port_arrival_date: { name: 'portArrivalDate', type: DateTime }, creation_date: { name: 'creationDate', type: DateTime }, last_updated: { name: 'lastUpdated', type: DateTime }, is_display_stock: { name: 'isDisplayStock' }, display_stock_agent: { name: 'displayStockAgent' }, is_specialist_car: { name: 'isSpecialistCar' }, location: { name: 'location' }, cesar_id_ship_to_party: { name: 'cesarIdShipToParty' }, is_sellable: { name: 'isSellable' }, under_offer: { name: 'underOffer' }, baumuster: { name: 'baumuster' }, } end end class StockManagementResponse include ServiceStack::DTO # @return [Integer] attr_accessor :total_vehicles # @return [IEnumerable] attr_accessor :vehicles def self.properties { total_vehicles: { name: 'totalVehicles' }, vehicles: { name: 'vehicles', type: [BackOrderVehicle] }, } end end # @Route("/v1/AllAvailableVehiclesCsv/{vehicleType}/{includeBackOrderAccounts}", "GET") class AllAvailableVehiclesCsvRequest < BaseAllAvailableVehiclesRequest def response_type() = StockManagementResponse def get_type_name() = 'AllAvailableVehiclesCsvRequest' def get_method() = 'GET' end