/* Options: Date: 2026-10-26 15:59:21 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 //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: AllAvailableVehiclesByCriteriaCsvRequest.* //ExcludeTypes: //DefaultImports: serde::{Deserialize, Serialize},serde_json::Value,std::collections::HashMap */ #![allow( dead_code, non_camel_case_types, non_snake_case, clippy::upper_case_acronyms )] use serde::{Deserialize, Serialize}; use serde_json::Value; use servicestack::*; use std::collections::HashMap; #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct CampaignExclusion { pub vin: Vec, #[serde(rename = "commissionNumber")] pub commission_number: Vec, #[serde(rename = "modelYearCode")] pub model_year_code: String, #[serde(rename = "equipmentCode")] pub equipment_code: String, pub gssn: Vec, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct RegistrationDate { pub from: String, pub to: String, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct Age { pub date: String, pub min: i32, pub max: i32, #[serde(rename = "includePipelineStock")] pub include_pipeline_stock: bool, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct PortArrivalDate { #[serde(rename = "pipelineStock")] pub pipeline_stock: bool, pub from: String, pub to: String, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct VehicleSearchV3Criteria { pub vin: Vec, pub model: Vec, pub fuel: Vec, pub transmission: Vec, pub engine: Vec, pub line: Vec, #[serde(rename = "mappedLine")] pub mapped_line: Vec, #[serde(rename = "commissionNumber")] pub commission_number: Vec, #[serde(rename = "vehicleType")] pub vehicle_type: String, pub exclusion: CampaignExclusion, #[serde(rename = "regNo")] pub reg_no: String, #[serde(rename = "includeOffline")] pub include_offline: bool, #[serde(rename = "registrationDate")] pub registration_date: RegistrationDate, pub age: Age, #[serde(rename = "portArrivalDate")] pub port_arrival_date: PortArrivalDate, #[serde(rename = "isAvailableOnline")] #[serde(default, skip_serializing_if = "Option::is_none")] pub is_available_online: Option, #[serde(rename = "isBackOrdered")] #[serde(default, skip_serializing_if = "Option::is_none")] pub is_back_ordered: Option, #[serde(rename = "isSellable")] #[serde(default, skip_serializing_if = "Option::is_none")] pub is_sellable: Option, #[serde(rename = "isUnderOffer")] #[serde(default, skip_serializing_if = "Option::is_none")] pub is_under_offer: Option, #[serde(rename = "mbukSecured")] #[serde(default, skip_serializing_if = "Option::is_none")] pub mbuk_secured: Option, pub account: Vec, pub baumuster: Vec, pub colours: Vec, pub upholstery: Vec, pub package: Vec, pub nst: Vec, #[serde(rename = "usageCode")] pub usage_code: Vec, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct BaseAllAvailableVehiclesRequest { #[serde(rename = "vehicleType")] pub vehicle_type: String, #[serde(rename = "includeBackOrderAccounts")] pub include_back_order_accounts: bool, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct CsvVehicle { #[serde(rename = "vehicle_Type")] pub vehicle_type: String, pub vid: String, pub vin: String, pub fin: String, #[serde(rename = "comm")] pub commission_number: String, #[serde(rename = "chassis_Number")] pub chassis_number: String, #[serde(rename = "model_Year")] pub model_year: String, #[serde(rename = "model_Year_Code")] pub model_year_code: String, #[serde(rename = "half_Model_Year_Code")] pub half_model_year_code: String, #[serde(rename = "full_Model_Year_Code")] pub full_model_year_code: String, #[serde(rename = "description")] pub sales_description_long: String, #[serde(rename = "vehicle_Class")] pub vehicle_class: String, #[serde(rename = "body_Style")] pub body_style: String, pub model: String, pub colour: String, #[serde(rename = "colour_Group")] pub colour_group: String, #[serde(rename = "fuel_Type")] pub fuel_type: String, pub transmission: String, pub packages: String, pub lines: String, #[serde(rename = "product_Range")] pub product_range: String, pub engine: String, #[serde(rename = "isAMG")] pub is_a_m_g: bool, pub upholstery: String, pub nst: String, pub baumuster: String, #[serde(rename = "bm7NST")] pub bm7_n_s_t: String, #[serde(default, skip_serializing_if = "Option::is_none")] pub acceleration: Option, #[serde(rename = "boot_Capacity")] #[serde(default, skip_serializing_if = "Option::is_none")] pub boot_capacity: Option, #[serde(rename = "top_Speed")] #[serde(default, skip_serializing_if = "Option::is_none")] pub top_speed: Option, #[serde(rename = "drive_Concept")] pub drive_concept: String, #[serde(rename = "combustion_Power_HP")] #[serde(default, skip_serializing_if = "Option::is_none")] pub combustion_power_hp: Option, #[serde(rename = "electric_Power_KW")] #[serde(default, skip_serializing_if = "Option::is_none")] pub electric_power_kw: Option, #[serde(rename = "electric_Power_HP")] #[serde(default, skip_serializing_if = "Option::is_none")] pub electric_power_hp: Option, #[serde(rename = "combined_Power_KW")] #[serde(default, skip_serializing_if = "Option::is_none")] pub combined_power_kw: Option, #[serde(rename = "combined_Power_HP")] #[serde(default, skip_serializing_if = "Option::is_none")] pub combined_power_h_p: Option, #[serde(rename = "electric_Range")] #[serde(default, skip_serializing_if = "Option::is_none")] pub electric_range: Option, #[serde(rename = "electric_Consumption")] #[serde(default, skip_serializing_if = "Option::is_none")] pub electric_consumption: Option, #[serde(rename = "emission_Combined")] pub emission_combined: String, #[serde(rename = "emission_Directive")] pub emission_directive: String, #[serde(rename = "emission_Extra_Urban")] pub emission_extra_urban: String, #[serde(rename = "emission_Urban")] pub emission_urban: String, #[serde(default, skip_serializing_if = "Option::is_none")] pub emission: Option, #[serde(rename = "test_Standard")] pub test_standard: String, #[serde(rename = "energy_Efficiency_Class")] pub energy_efficiency_class: String, #[serde(rename = "wltP_Combined")] pub wltp_combined: String, #[serde(rename = "wltP_Low")] pub wltp_low: String, #[serde(rename = "wltP_Medium")] pub wltp_medium: String, #[serde(rename = "wltP_High")] pub wltp_high: String, #[serde(rename = "wltP_Extra_High")] pub wltp_extra_high: String, #[serde(rename = "wltP_CO2_Emissions")] pub wltp_emission_combined: String, #[serde(rename = "port_Arrival_Date")] #[serde(default, skip_serializing_if = "Option::is_none")] pub port_arrival_date: Option, #[serde(rename = "creation_Date")] pub creation_date: String, #[serde(rename = "maintenance_Date")] #[serde(default, skip_serializing_if = "Option::is_none")] pub last_updated: Option, #[serde(rename = "net_Price")] pub retail_price__ex_v_a_t: f64, #[serde(rename = "retail_Price")] pub retail_price__inc_v_a_t: f64, #[serde(rename = "otR_Price")] pub otr: f64, #[serde(rename = "actual_Price")] pub actual_price: f64, #[serde(rename = "usage_Code")] pub usage_code: String, pub secured: String, pub account: String, #[serde(rename = "isDisplayStock")] pub is_display_stock: String, #[serde(rename = "display_Agent")] pub display_stock_agent: String, #[serde(rename = "isSpecialistCar")] pub is_specialist_car: String, #[serde(rename = "cesarIdShipToParty")] pub cesar_id_ship_to_party: String, #[serde(rename = "isSellable")] pub is_sellable: String, #[serde(rename = "under_Offer")] pub under_offer: String, #[serde(rename = "secured_Date")] #[serde(default, skip_serializing_if = "Option::is_none")] pub secured_date: Option, #[serde(rename = "secured_Reason")] #[serde(default, skip_serializing_if = "Option::is_none")] pub secured_reason: Option, #[serde(rename = "secured_By_Gas_Id")] #[serde(default, skip_serializing_if = "Option::is_none")] pub secured_by_gas_id: Option, #[serde(rename = "confirmed_Production_Date")] #[serde(default, skip_serializing_if = "Option::is_none")] pub confirmed_production_date: Option, #[serde(rename = "forecasted_Arrival_Date")] #[serde(default, skip_serializing_if = "Option::is_none")] pub forecasted_arrival_date: Option, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct InternalAvailableStockResponse { #[serde(rename = "totalVehicles")] pub total_vehicles: i32, pub vehicles: Vec, } // Route("/v1/AllAvailableVehiclesCsv/{vehicleType}/{includeBackOrderAccounts}", "POST") #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct AllAvailableVehiclesByCriteriaCsvRequest { #[serde(flatten)] pub base_all_available_vehicles_request: BaseAllAvailableVehiclesRequest, pub criteria: VehicleSearchV3Criteria, } impl IRequest for AllAvailableVehiclesByCriteriaCsvRequest { const NAME: &'static str = "AllAvailableVehiclesByCriteriaCsvRequest"; const VERB: &'static str = "POST"; } impl IReturn for AllAvailableVehiclesByCriteriaCsvRequest { type Response = InternalAvailableStockResponse; }