/* Options: Date: 2026-07-14 06:37:53 Version: 10.05 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bookmore.com //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CalculateTotalPriceOnService.* //ExcludeTypes: //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.* */ import java.math.* import java.util.* import java.io.InputStream import net.servicestack.client.* @Route(Path="/services/{Id}/calculateprice", Verbs="PUT") open class CalculateTotalPriceOnService : IReturn, ICompany { /** * The company id, if empty will use the company id for the user you are logged in with. */ @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.") override var CompanyId:UUID? = null /** * Id of the service */ @ApiMember(Description="Id of the service", IsRequired=true, ParameterType="path") open var Id:Int? = null /** * Optional booking id. If provided, the response will also contain the price difference compared to the existing booking price. */ @ApiMember(Description="Optional booking id. If provided, the response will also contain the price difference compared to the existing booking price.") open var BookingId:Int? = null /** * The price interval to be used for calculations */ @ApiMember(Description="The price interval to be used for calculations", IsRequired=true) open var Interval:PriceInterval? = null /** * Rebate codes applied to booking */ @ApiMember(Description="Rebate codes applied to booking") open var RebateCodeIds:ArrayList = ArrayList() /** * DEPRECATED — use Articles instead. Article ids that should be included in the price calculation. The articles must be of type ServiceAddonArticle and connected to the service. Duplicate ids are counted as quantity. */ @ApiMember(Description="DEPRECATED — use Articles instead. Article ids that should be included in the price calculation. The articles must be of type ServiceAddonArticle and connected to the service. Duplicate ids are counted as quantity.") open var ArticleIds:ArrayList = ArrayList() /** * Articles (with quantity) that should be included in the price calculation. The articles must be of type ServiceAddonArticle and connected to the service. */ @ApiMember(Description="Articles (with quantity) that should be included in the price calculation. The articles must be of type ServiceAddonArticle and connected to the service.") open var Articles:ArrayList = ArrayList() /** * If you have selected to include the prices, here you can include the quantities to book to get the correct total price. */ @ApiMember(Description="If you have selected to include the prices, here you can include the quantities to book to get the correct total price.") open var Quantities:ArrayList = ArrayList() /** * */ @ApiMember(Description="") open var CustomerEmail:String? = null companion object { private val responseType = TotalPriceInformationResponse::class.java } override fun getResponseType(): Any? = CalculateTotalPriceOnService.responseType } open class TotalPriceInformationResponse { open var PriceSign:String? = null open var CurrencyId:String? = null open var TotalPrice:Double? = null open var TotalVatAmount:Double? = null open var TotalPriceBeforeRebate:Double? = null open var PriceDifference:Double? = null open var AppliedCodes:ArrayList = ArrayList() open var PriceDetails:ArrayList = ArrayList() } interface ICompany { var CompanyId:UUID? } open class PriceInterval { /** * The start date and time for the price to be calculated. Normally the booking start datetime. */ @ApiMember(Description="The start date and time for the price to be calculated. Normally the booking start datetime.", IsRequired=true) open var From:Date? = null /** * The end date and time for the price to be calculated.Normally the booking end datetime. If nothing entered it will use the service length. */ @ApiMember(Description="The end date and time for the price to be calculated.Normally the booking end datetime. If nothing entered it will use the service length.") open var To:Date? = null } open class RebateCodeTypeResponse { open var Id:Int? = null open var Name:String? = null open var Description:String? = null } open class AppliedRebateCodesResponse { open var RebateCodeSign:String? = null open var RebateCodeValue:Int? = null open var RebateCodeType:RebateCodeTypeResponse? = null open var RebateCodeId:Int? = null open var RebateAmount:Double? = null } open class TotalPricePriceDetail { open var Quantity:Int? = null open var Price:Double? = null open var VatAmount:Double? = null open var Description:String? = null open var ArticleId:Int? = null open var MaxQuantity:Int? = null }