/* Options: Date: 2026-10-12 12:10:51 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: VehicleDetailsRequest.* //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 VehicleAuditDetails { #[serde(rename = "userId")] #[serde(default, skip_serializing_if = "Option::is_none")] pub user_id: Option, pub status: bool, #[serde(default, skip_serializing_if = "Option::is_none")] pub notes: Option, #[serde(rename = "creationDate")] #[serde(default, skip_serializing_if = "Option::is_none")] pub creation_date: Option, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct BackOrderVehicleDetailsBase { pub vin: String, #[serde(rename = "commissionNumber")] pub commission_number: String, pub description: String, pub model: String, #[serde(rename = "fullModelYearCode")] pub full_model_year_code: String, #[serde(rename = "retailerId")] pub retailer_id: i32, #[serde(rename = "imageUrl")] pub image_url: String, pub colour: String, #[serde(rename = "colourDescription")] pub colour_description: String, #[serde(rename = "bodyStyle")] pub body_style: String, #[serde(rename = "fuelType")] pub fuel_type: String, pub transmission: String, #[serde(rename = "transmissionType")] pub transmission_type: String, pub package: String, pub packages: Vec, pub line: String, #[serde(rename = "mappedLine")] pub mapped_line: String, pub upholstery: String, #[serde(rename = "upholsteryDescription")] pub upholstery_description: String, #[serde(rename = "usageCode")] pub usage_code: String, pub account: String, pub nst: String, pub baumuster: String, #[serde(rename = "electricRange")] #[serde(default, skip_serializing_if = "Option::is_none")] pub electric_range: Option, #[serde(rename = "electricConsumption")] #[serde(default, skip_serializing_if = "Option::is_none")] pub electric_consumption: Option, #[serde(rename = "retailPrice_ExVAT")] pub retail_price__ex_v_a_t: f64, #[serde(rename = "actualPrice")] #[serde(default, skip_serializing_if = "Option::is_none")] pub actual_price: Option, #[serde(rename = "otrPrice")] pub otr_price: f64, #[serde(rename = "p11D")] pub p11_d: f64, #[serde(rename = "vehicleType")] pub vehicle_type: String, pub secured: bool, #[serde(rename = "portArrivalDate")] #[serde(default, skip_serializing_if = "Option::is_none")] pub port_arrival_date: Option, #[serde(rename = "displayRetailer")] pub display_retailer: String, pub location: String, #[serde(rename = "bm7NST")] pub bm7_n_s_t: String, #[serde(rename = "isAvailableOnline")] pub is_available_online: bool, #[serde(rename = "isSpecialistCar")] pub is_specialist_car: bool, #[serde(rename = "isSellable")] pub is_sellable: bool, #[serde(rename = "inBackOrderAccount")] pub in_back_order_account: bool, #[serde(rename = "vehicleAuditDetails")] pub vehicle_audit_details: Vec, #[serde(rename = "ispVehicleCustomerDescriptions")] #[serde(default, skip_serializing_if = "Option::is_none")] pub isp_vehicle_customer_descriptions: Option>, #[serde(rename = "underOffer")] pub under_offer: bool, #[serde(rename = "isAllocatedToBackOrder")] pub is_allocated_to_back_order: bool, #[serde(rename = "eligibleForMaTransfer")] pub eligible_for_ma_transfer: bool, #[serde(rename = "confirmedProductionDate")] #[serde(default, skip_serializing_if = "Option::is_none")] pub confirmed_production_date: Option, #[serde(rename = "forecastedArrivalDate")] #[serde(default, skip_serializing_if = "Option::is_none")] pub forecasted_arrival_date: Option, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct BackOrderVehicleDetails { #[serde(flatten)] pub back_order_vehicle_details_base: BackOrderVehicleDetailsBase, #[serde(default, skip_serializing_if = "Option::is_none")] pub engine: Option, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct VehicleAuditDetails { #[serde(rename = "userId")] pub user_id: String, pub status: bool, pub notes: String, #[serde(rename = "creationDate")] pub creation_date: String, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct VehicleDetailsResponse { pub vehicle: BackOrderVehicleDetails, } // Route("/v1/details/{vehicleType}/{Identifier}", "GET") // Route("/details/{vehicleType}/{Identifier}", "GET") #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct VehicleDetailsRequest { pub identifier: String, #[serde(rename = "vehicleType")] pub vehicle_type: String, } impl IRequest for VehicleDetailsRequest { const NAME: &'static str = "VehicleDetailsRequest"; const VERB: &'static str = "GET"; } impl IReturn for VehicleDetailsRequest { type Response = VehicleDetailsResponse; }