/* Options: Date: 2026-07-14 05:59:18 Version: 10.05 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bookmore.com //Package: //GlobalNamespace: dtos //AddPropertyAccessors: True //SettersReturnThis: True //AddServiceStackTypes: True //AddResponseStatus: False //AddDescriptionAsComments: True //AddImplicitVersion: IncludeTypes: CalculateTotalPriceOnService.* //ExcludeTypes: //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.*; public class dtos { @Route(Path="/services/{Id}/calculateprice", Verbs="PUT") public static class CalculateTotalPriceOnService implements 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.") public UUID CompanyId = null; /** * Id of the service */ @ApiMember(Description="Id of the service", IsRequired=true, ParameterType="path") public Integer Id = 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.") public Integer BookingId = null; /** * The price interval to be used for calculations */ @ApiMember(Description="The price interval to be used for calculations", IsRequired=true) public PriceInterval Interval = null; /** * Rebate codes applied to booking */ @ApiMember(Description="Rebate codes applied to booking") public ArrayList RebateCodeIds = new 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.") public ArrayList ArticleIds = new 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.") public ArrayList Articles = new 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.") public ArrayList Quantities = new ArrayList(); /** * */ @ApiMember(Description="") public String CustomerEmail = null; public UUID getCompanyId() { return CompanyId; } public CalculateTotalPriceOnService setCompanyId(UUID value) { this.CompanyId = value; return this; } public Integer getId() { return Id; } public CalculateTotalPriceOnService setId(Integer value) { this.Id = value; return this; } public Integer getBookingId() { return BookingId; } public CalculateTotalPriceOnService setBookingId(Integer value) { this.BookingId = value; return this; } public PriceInterval getInterval() { return Interval; } public CalculateTotalPriceOnService setInterval(PriceInterval value) { this.Interval = value; return this; } public ArrayList getRebateCodeIds() { return RebateCodeIds; } public CalculateTotalPriceOnService setRebateCodeIds(ArrayList value) { this.RebateCodeIds = value; return this; } public ArrayList getArticleIds() { return ArticleIds; } public CalculateTotalPriceOnService setArticleIds(ArrayList value) { this.ArticleIds = value; return this; } public ArrayList getArticles() { return Articles; } public CalculateTotalPriceOnService setArticles(ArrayList value) { this.Articles = value; return this; } public ArrayList getQuantities() { return Quantities; } public CalculateTotalPriceOnService setQuantities(ArrayList value) { this.Quantities = value; return this; } public String getCustomerEmail() { return CustomerEmail; } public CalculateTotalPriceOnService setCustomerEmail(String value) { this.CustomerEmail = value; return this; } private static Object responseType = TotalPriceInformationResponse.class; public Object getResponseType() { return responseType; } } public static class TotalPriceInformationResponse { public String PriceSign = null; public String CurrencyId = null; public Double TotalPrice = null; public Double TotalVatAmount = null; public Double TotalPriceBeforeRebate = null; public Double PriceDifference = null; public ArrayList AppliedCodes = new ArrayList(); public ArrayList PriceDetails = new ArrayList(); public String getPriceSign() { return PriceSign; } public TotalPriceInformationResponse setPriceSign(String value) { this.PriceSign = value; return this; } public String getCurrencyId() { return CurrencyId; } public TotalPriceInformationResponse setCurrencyId(String value) { this.CurrencyId = value; return this; } public Double getTotalPrice() { return TotalPrice; } public TotalPriceInformationResponse setTotalPrice(Double value) { this.TotalPrice = value; return this; } public Double getTotalVatAmount() { return TotalVatAmount; } public TotalPriceInformationResponse setTotalVatAmount(Double value) { this.TotalVatAmount = value; return this; } public Double getTotalPriceBeforeRebate() { return TotalPriceBeforeRebate; } public TotalPriceInformationResponse setTotalPriceBeforeRebate(Double value) { this.TotalPriceBeforeRebate = value; return this; } public Double getPriceDifference() { return PriceDifference; } public TotalPriceInformationResponse setPriceDifference(Double value) { this.PriceDifference = value; return this; } public ArrayList getAppliedCodes() { return AppliedCodes; } public TotalPriceInformationResponse setAppliedCodes(ArrayList value) { this.AppliedCodes = value; return this; } public ArrayList getPriceDetails() { return PriceDetails; } public TotalPriceInformationResponse setPriceDetails(ArrayList value) { this.PriceDetails = value; return this; } } public static interface ICompany { public UUID CompanyId = null; } public static 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) public Date From = 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.") public Date To = null; public Date getFrom() { return From; } public PriceInterval setFrom(Date value) { this.From = value; return this; } public Date getTo() { return To; } public PriceInterval setTo(Date value) { this.To = value; return this; } } public static class RebateCodeTypeResponse { public Integer Id = null; public String Name = null; public String Description = null; public Integer getId() { return Id; } public RebateCodeTypeResponse setId(Integer value) { this.Id = value; return this; } public String getName() { return Name; } public RebateCodeTypeResponse setName(String value) { this.Name = value; return this; } public String getDescription() { return Description; } public RebateCodeTypeResponse setDescription(String value) { this.Description = value; return this; } } public static class AppliedRebateCodesResponse { public String RebateCodeSign = null; public Integer RebateCodeValue = null; public RebateCodeTypeResponse RebateCodeType = null; public Integer RebateCodeId = null; public Double RebateAmount = null; public String getRebateCodeSign() { return RebateCodeSign; } public AppliedRebateCodesResponse setRebateCodeSign(String value) { this.RebateCodeSign = value; return this; } public Integer getRebateCodeValue() { return RebateCodeValue; } public AppliedRebateCodesResponse setRebateCodeValue(Integer value) { this.RebateCodeValue = value; return this; } public RebateCodeTypeResponse getRebateCodeType() { return RebateCodeType; } public AppliedRebateCodesResponse setRebateCodeType(RebateCodeTypeResponse value) { this.RebateCodeType = value; return this; } public Integer getRebateCodeId() { return RebateCodeId; } public AppliedRebateCodesResponse setRebateCodeId(Integer value) { this.RebateCodeId = value; return this; } public Double getRebateAmount() { return RebateAmount; } public AppliedRebateCodesResponse setRebateAmount(Double value) { this.RebateAmount = value; return this; } } public static class TotalPricePriceDetail { public Integer Quantity = null; public Double Price = null; public Double VatAmount = null; public String Description = null; public Integer ArticleId = null; public Integer MaxQuantity = null; public Integer getQuantity() { return Quantity; } public TotalPricePriceDetail setQuantity(Integer value) { this.Quantity = value; return this; } public Double getPrice() { return Price; } public TotalPricePriceDetail setPrice(Double value) { this.Price = value; return this; } public Double getVatAmount() { return VatAmount; } public TotalPricePriceDetail setVatAmount(Double value) { this.VatAmount = value; return this; } public String getDescription() { return Description; } public TotalPricePriceDetail setDescription(String value) { this.Description = value; return this; } public Integer getArticleId() { return ArticleId; } public TotalPricePriceDetail setArticleId(Integer value) { this.ArticleId = value; return this; } public Integer getMaxQuantity() { return MaxQuantity; } public TotalPricePriceDetail setMaxQuantity(Integer value) { this.MaxQuantity = value; return this; } } }