# frozen_string_literal: true # encoding: utf-8 # Options: =begin Date: 2026-11-12 12:19:05 Version: 10.40 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://prod-api-agency-orch-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: CarConfiguratorRequest.* #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 IPost end class KeyInformation include ServiceStack::DTO # @return [String] attr_accessor :b_m7_n_s_t # @return [String] attr_accessor :configuration_date # @return [String] attr_accessor :model_year # @return [String] attr_accessor :half_year # @return [String] attr_accessor :type_class # @return [TrueClass] attr_accessor :is_private_van def self.properties { b_m7_n_s_t: { name: 'bM7NST' }, configuration_date: { name: 'configurationDate' }, model_year: { name: 'modelYear' }, half_year: { name: 'halfYear' }, type_class: { name: 'typeClass' }, is_private_van: { name: 'isPrivateVan' }, } end end class EquipmentCache include ServiceStack::DTO # @return [String] attr_accessor :code # @return [String] attr_accessor :description # @return [String] attr_accessor :standard_flag # @return [BigDecimal] attr_accessor :price # @return [String] attr_accessor :category # @return [String] attr_accessor :importance def self.properties { code: { name: 'code' }, description: { name: 'description' }, standard_flag: { name: 'standardFlag' }, price: { name: 'price' }, category: { name: 'category' }, importance: { name: 'importance' }, } end end class OrderingOptions include ServiceStack::DTO # @return [List] attr_accessor :interior # @return [List] attr_accessor :exterior # @return [List] attr_accessor :options # @return [List] attr_accessor :wheel_options # @return [List] attr_accessor :trim_options # @return [List] attr_accessor :equipment_option_codes # @return [List] attr_accessor :option_codes def self.properties { interior: { name: 'interior' }, exterior: { name: 'exterior' }, options: { name: 'options' }, wheel_options: { name: 'wheelOptions', type: [EquipmentCache] }, trim_options: { name: 'trimOptions', type: [EquipmentCache] }, equipment_option_codes: { name: 'equipmentOptionCodes', type: [EquipmentCache] }, option_codes: { name: 'optionCodes', type: [EquipmentCache] }, } end end class ResponseStatus include ServiceStack::DTO # @return [String] attr_accessor :error_code # @return [String] attr_accessor :message def self.properties { error_code: { name: 'errorCode' }, message: { name: 'message' }, } end end # @DataContract class ResponseStatus include ServiceStack::DTO # @DataMember(Order=1) # @return [String] attr_accessor :error_code # @DataMember(Order=2) # @return [String] attr_accessor :message # @DataMember(Order=3) # @return [String] attr_accessor :stack_trace # @DataMember(Order=4) # @return [List] attr_accessor :errors # @DataMember(Order=5) # @return [Dictionary] attr_accessor :meta def self.properties { error_code: { name: 'errorCode' }, message: { name: 'message' }, stack_trace: { name: 'stackTrace' }, errors: { name: 'errors', type: [ServiceStack::ResponseError] }, meta: { name: 'meta' }, } end end class CarConfiguratorResponse include ServiceStack::DTO # @return [String] attr_accessor :name # @return [KeyInformation] attr_accessor :key_information # @return [OrderingOptions] attr_accessor :ordering_options # @return [ResponseStatus] attr_accessor :response_status # @return [String] attr_accessor :configurator_code def self.properties { name: { name: 'name' }, key_information: { name: 'keyInformation', type: KeyInformation }, ordering_options: { name: 'orderingOptions', type: OrderingOptions }, response_status: { name: 'responseStatus', type: ResponseStatus }, configurator_code: { name: 'configuratorCode' }, } end end # @Route("/v1/configurator", "POST") class CarConfiguratorRequest include ServiceStack::DTO # @ApiMember(Description: "Configurator code", IsRequired: "true") # @return [String] attr_accessor :configurator_code def self.properties { configurator_code: { name: 'configuratorCode' }, } end def response_type() = CarConfiguratorResponse def get_type_name() = 'CarConfiguratorRequest' def get_method() = 'POST' end