/* Options: Date: 2026-07-13 13:07:00 Version: 10.05 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CalculateTotalPriceOnService.* //ExcludeTypes: //DefaultImports: */ // @ts-nocheck export interface IReturn { createResponse(): T; } export interface ICompany { CompanyId?: string; } export class PriceInterval { /** @description 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 From: string; /** @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. */ // @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 To?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class RebateCodeTypeResponse { public Id: number; public Name: string; public Description: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AppliedRebateCodesResponse { public RebateCodeSign: string; public RebateCodeValue: number; public RebateCodeType: RebateCodeTypeResponse; public RebateCodeId: number; public RebateAmount: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TotalPricePriceDetail { public Quantity: number; public Price: number; public VatAmount: number; public Description: string; public ArticleId: number; public MaxQuantity: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TotalPriceInformationResponse { public PriceSign: string; public CurrencyId: string; public TotalPrice: number; public TotalVatAmount: number; public TotalPriceBeforeRebate: number; public PriceDifference: number; public AppliedCodes: AppliedRebateCodesResponse[] = []; public PriceDetails: TotalPricePriceDetail[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/services/{Id}/calculateprice", "PUT") export class CalculateTotalPriceOnService implements IReturn, ICompany { /** @description 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 CompanyId?: string; /** @description Id of the service */ // @ApiMember(Description="Id of the service", IsRequired=true, ParameterType="path") public Id: number; /** @description 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 BookingId?: number; /** @description The price interval to be used for calculations */ // @ApiMember(Description="The price interval to be used for calculations", IsRequired=true) public Interval: PriceInterval; /** @description Rebate codes applied to booking */ // @ApiMember(Description="Rebate codes applied to booking") public RebateCodeIds: number[] = []; /** @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. */ // @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 ArticleIds: number[] = []; /** @description 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 Articles: ArticleToCreateBase[] = []; /** @description 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 Quantities: QuantityToBook[] = []; /** @description */ // @ApiMember(Description="") public CustomerEmail: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'CalculateTotalPriceOnService'; } public getMethod() { return 'PUT'; } public createResponse() { return new TotalPriceInformationResponse(); } }