/* Options: Date: 2025-10-27 13:09:28 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateBookingUserQueue.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export class AddCustomField { public Id: number; public Value: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CustomerBase implements ICustomerBase { public CustomerId?: string; public Firstname: string; public Lastname: string; public Email: string; public Phone: string; public SubscribedToNewsletter: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CustomerToHandle extends CustomerBase { public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class InvoiceAddressToHandle implements IInvoiceAddress { public CorporateIdentityNumber: string; public InvoiceAddress1: string; public InvoiceAddress2: string; public InvoiceCity: string; public InvoicePostalCode: string; public InvoiceCountryCode: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class QuantityToBook { /** @description If service has a price, enter the price id for that price. If no price exists for the service set 0 as PriceId. If you put 0 and a price exists, it will use that price (only works if just one price exists for the current selected date to book) */ // @ApiMember(Description="If service has a price, enter the price id for that price. If no price exists for the service set 0 as PriceId. If you put 0 and a price exists, it will use that price (only works if just one price exists for the current selected date to book)", IsRequired=true) public PriceId: number; /** @description Set the number of spots or resources you want to book on the specific price category */ // @ApiMember(Description="Set the number of spots or resources you want to book on the specific price category", IsRequired=true) public Quantity: number; /** @description If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information. */ // @ApiMember(Description="If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.") public OccupiesSpot: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface ICustomerBase { CustomerId?: string; Firstname: string; Lastname: string; Email: string; Phone: string; SubscribedToNewsletter: boolean; } export class GroupBookingSettings { public Active: boolean; public Min: number; public Max: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class MultipleResourceSettings { public Active: boolean; public Min: number; public Max: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BookingUserQueuePriceResponse { public CompanyId: string; public Id: number; public BookingUserQueueId: number; public ServicePriceId?: number; public Quantity?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ServiceInfoResponse { public Id: number; public Name: string; public Description: string; public ImageUrl: string; public LengthInMinutes?: number; public MaxNumberOfSpotsPerBooking: number; public MinNumberOfSpotsPerBooking: number; public GroupBooking: GroupBookingSettings; public MultipleResource: MultipleResourceSettings; public IsGroupBooking: boolean; public IsPaymentEnabled: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CompanyInfoResponse { public Id: string; public Name: string; public LogoType: string; public Category: string; public Street1: string; public Street2: string; public ZipCode: string; public City: string; public CountryId: string; public Longitude: string; public Latitude: string; public Phone: string; public Email: string; public HomePage: string; public SitePath: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface IInvoiceAddress { CorporateIdentityNumber: string; InvoiceAddress1: string; InvoiceAddress2: string; InvoiceCity: string; InvoicePostalCode: string; InvoiceCountryCode: string; } export class BookingUserQueueItemResponse { public BookingUserQueueId: number; public CompanyId: string; public CustomerId: string; public ServiceId: number; public From: string; public To: string; public StatusCode: number; public StatusName: string; public SendConfirmationTime?: string; public Quantities: BookingUserQueuePriceResponse[] = []; public Service: ServiceInfoResponse; public Company: CompanyInfoResponse; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/bookinguserqueue", "POST") export class CreateBookingUserQueue implements IReturn { public CompanyId?: string; public CustomerId?: string; public Customer: CustomerToHandle; public InvoiceAddress: InvoiceAddressToHandle; public ServiceId: number; public From: string; public To: string; public Quantities: QuantityToBook[] = []; /** @description If Custom Fields are added to the booking, here you will send the id and the value for each custom field to be saved */ // @ApiMember(Description="If Custom Fields are added to the booking, here you will send the id and the value for each custom field to be saved") public CustomFields: AddCustomField[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'CreateBookingUserQueue'; } public getMethod() { return 'POST'; } public createResponse() { return new BookingUserQueueItemResponse(); } }