BokaMera.API.Host

<back to all web services

SuperAdminBookingQuery

Requires Authentication
Required role:superadmin
The following routes are available for this service:
GET/superadmin/bookingsFind booked events for currently logged in userThis service is used to get bookings for the current user, the result will be paged if the query returns a to large set of values.
"use strict";
export class QueryBase {
    /** @param {{Skip?:number,Take?:number,OrderBy?:string,OrderByDesc?:string,Include?:string,Fields?:string,Meta?:{ [index: string]: string; }}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {?number}
     * @description Skip over a given number of elements in a sequence and then return the remainder. Use this when you need paging.<br/><br/><strong>Example:</strong><br/><code>?skip=10&orderBy=Id</code> */
    Skip;
    /**
     * @type {?number}
     * @description Return a given number of elements in a sequence and then skip over the remainder. Use this when you need paging.<br/><br/><strong>Example:</strong><br/><code>?take=20</code> */
    Take;
    /**
     * @type {string}
     * @description Comma separated list of fields to order by. Prefix the field name with a minus if you wan't to invert the sort for that field.<br/><br/><strong>Example:</strong><br/><code>?orderBy=Id,-Age,FirstName</code> */
    OrderBy;
    /**
     * @type {string}
     * @description Comma separated list of fields to order by in descending order. Prefix the field name with a minus if you wan't to invert the sort for that field.<br/><br/><strong>Example:</strong><br/><code>?orderByDesc=Id,-Age,FirstName</code> */
    OrderByDesc;
    /**
     * @type {string}
     * @description Include any of the aggregates <code>AVG, COUNT, FIRST, LAST, MAX, MIN, SUM</code> in your result set. The results will be returned in the meta field.<br/><br/><strong>Example:</strong><br/><code>?include=COUNT(*) as Total</code><br/><br/>or multiple fields with<br/><code>?include=Count(*) Total, Min(Age), AVG(Age) AverageAge</code><br/></br>or unique with<br/><code>?include=COUNT(DISTINCT LivingStatus) as UniqueStatus</code> */
    Include;
    /** @type {string} */
    Fields;
    /** @type {{ [index: string]: string; }} */
    Meta;
}
/** @typedef From {any} */
/** @typedef  Into {any} */
export class QueryDb extends QueryBase {
    /** @param {{Skip?:number,Take?:number,OrderBy?:string,OrderByDesc?:string,Include?:string,Fields?:string,Meta?:{ [index: string]: string; }}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
}
/** @typedef {number} */
export var BookingStatusEnum;
(function (BookingStatusEnum) {
    BookingStatusEnum[BookingStatusEnum["Booked"] = 1] = "Booked"
    BookingStatusEnum[BookingStatusEnum["Unbooked"] = 2] = "Unbooked"
    BookingStatusEnum[BookingStatusEnum["Reserved"] = 3] = "Reserved"
    BookingStatusEnum[BookingStatusEnum["Canceled"] = 4] = "Canceled"
    BookingStatusEnum[BookingStatusEnum["AwaitingPayment"] = 5] = "AwaitingPayment"
    BookingStatusEnum[BookingStatusEnum["AwaitingPaymentNoTimeLimit"] = 6] = "AwaitingPaymentNoTimeLimit"
    BookingStatusEnum[BookingStatusEnum["Payed"] = 7] = "Payed"
    BookingStatusEnum[BookingStatusEnum["AwaitingPaymentRequestFromAdmin"] = 8] = "AwaitingPaymentRequestFromAdmin"
    BookingStatusEnum[BookingStatusEnum["AwaitingPaymentFromProvider"] = 9] = "AwaitingPaymentFromProvider"
    BookingStatusEnum[BookingStatusEnum["Invoiced"] = 10] = "Invoiced"
})(BookingStatusEnum || (BookingStatusEnum = {}));
export class BookingStatusQueryResponse {
    /** @param {{Id?:number,Name?:string,Description?:string,Icon?:string,Color?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    Id;
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {string} */
    Icon;
    /** @type {string} */
    Color;
}
export class CustomFieldValueResponse {
    /** @param {{Value?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    Value;
}
export class CustomFieldConfigData {
    /** @param {{Id?:number,Name?:string,Description?:string,Width?:number,DataType?:string,DefaultValue?:string,IsMandatory?:boolean,MandatoryErrorMessage?:string,MaxLength?:number,MultipleLineText?:boolean,RegEx?:string,RegExErrorMessage?:string,Values?:CustomFieldValueResponse[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {number}
     * @description Custom field id */
    Id;
    /**
     * @type {string}
     * @description Configuration name. Example: 'Number of persons'. */
    Name;
    /**
     * @type {string}
     * @description Custom field description. Example: 'For how many persons is this booking?' */
    Description;
    /**
     * @type {?number}
     * @description Field width. Example: 20 for 20px */
    Width;
    /**
     * @type {string}
     * @description Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox' */
    DataType;
    /**
     * @type {string}
     * @description Default value of the field. Example: '3' */
    DefaultValue;
    /**
     * @type {boolean}
     * @description Determines if the field is required to have a value or not */
    IsMandatory;
    /**
     * @type {string}
     * @description Error message shown to the user if the field data is required but not entered */
    MandatoryErrorMessage;
    /**
     * @type {number}
     * @description Max lenght of the field */
    MaxLength;
    /**
     * @type {boolean}
     * @description If the field should have multiple lines */
    MultipleLineText;
    /**
     * @type {string}
     * @description Regular expression used for validation of the field */
    RegEx;
    /**
     * @type {string}
     * @description Error message shown if the regular expression validation failed */
    RegExErrorMessage;
    /**
     * @type {CustomFieldValueResponse[]}
     * @description The values to select from if Datatype is DropDown for this custom field */
    Values;
}
export class CustomFieldDataResponse {
    /** @param {{Id?:number,Column?:string,Name?:string,Description?:string,Value?:string,DataType?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    Id;
    /** @type {string} */
    Column;
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {string} */
    Value;
    /**
     * @type {string}
     * @description Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox' */
    DataType;
}
export class BookedResource {
    /** @param {{Id?:number,Name?:string,Color?:string,ImageUrl?:string,Email?:string,MobilePhone?:string,AccessGroup?:string,EmailNotification?:boolean,SMSNotification?:boolean,EmailReminder?:boolean,SMSReminder?:boolean}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    Id;
    /** @type {string} */
    Name;
    /** @type {string} */
    Color;
    /** @type {string} */
    ImageUrl;
    /** @type {string} */
    Email;
    /** @type {string} */
    MobilePhone;
    /** @type {string} */
    AccessGroup;
    /** @type {boolean} */
    EmailNotification;
    /** @type {boolean} */
    SMSNotification;
    /** @type {boolean} */
    EmailReminder;
    /** @type {boolean} */
    SMSReminder;
}
export class BookedResourceType {
    /** @param {{Id?:number,Name?:string,Resources?:BookedResource[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {number}
     * @description The resource type id */
    Id;
    /**
     * @type {string}
     * @description The resource type name */
    Name;
    /**
     * @type {BookedResource[]}
     * @description The resources inside resource type */
    Resources;
}
export class BookedCompany {
    /** @param {{Id?:string,Name?:string,LogoType?:string,Category?:string,Street1?:string,Street2?:string,ZipCode?:string,City?:string,CountryId?:string,Longitude?:string,Latitude?:string,Phone?:string,Email?:string,HomePage?:string,SitePath?:string,IsFavorite?:boolean,PaymentProviderId?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    Id;
    /** @type {string} */
    Name;
    /** @type {string} */
    LogoType;
    /** @type {string} */
    Category;
    /** @type {string} */
    Street1;
    /** @type {string} */
    Street2;
    /** @type {string} */
    ZipCode;
    /** @type {string} */
    City;
    /** @type {string} */
    CountryId;
    /** @type {string} */
    Longitude;
    /** @type {string} */
    Latitude;
    /** @type {string} */
    Phone;
    /** @type {string} */
    Email;
    /** @type {string} */
    HomePage;
    /** @type {string} */
    SitePath;
    /** @type {boolean} */
    IsFavorite;
    /** @type {?number} */
    PaymentProviderId;
}
export class BookedCustomer {
    /** @param {{Id?:string,Firstname?:string,Lastname?:string,Email?:string,Phone?:string,FacebookUserName?:string,ImageUrl?:string,CorporateIdentityNumber?:string,InvoiceAddress1?:string,InvoiceAddress2?:string,InvoiceCity?:string,InvoicePostalCode?:string,InvoiceCountryCode?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    Id;
    /** @type {string} */
    Firstname;
    /** @type {string} */
    Lastname;
    /** @type {string} */
    Email;
    /** @type {string} */
    Phone;
    /** @type {string} */
    FacebookUserName;
    /** @type {string} */
    ImageUrl;
    /** @type {string} */
    CorporateIdentityNumber;
    /** @type {string} */
    InvoiceAddress1;
    /** @type {string} */
    InvoiceAddress2;
    /** @type {string} */
    InvoiceCity;
    /** @type {string} */
    InvoicePostalCode;
    /** @type {string} */
    InvoiceCountryCode;
}
export class BookedQuantity {
    /** @param {{Id?:number,Quantity?:number,Price?:number,PriceBeforeRebate?:number,CurrencyId?:string,PriceSign?:string,Category?:string,VAT?:number,PriceText?:string,OccupiesSpot?:boolean}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {number}
     * @description The quantity Id */
    Id;
    /**
     * @type {number}
     * @description The quantity for booked on this price category */
    Quantity;
    /**
     * @type {?number}
     * @description The price */
    Price;
    /**
     * @type {?number}
     * @description The price bofore rebate codes */
    PriceBeforeRebate;
    /**
     * @type {string}
     * @description The price currency */
    CurrencyId;
    /**
     * @type {string}
     * @description The price sign */
    PriceSign;
    /**
     * @type {string}
     * @description The price category */
    Category;
    /**
     * @type {?number}
     * @description The price VAT in percent */
    VAT;
    /**
     * @type {string}
     * @description The price text to display */
    PriceText;
    /**
     * @type {boolean}
     * @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. */
    OccupiesSpot;
}
export class GroupBookingSettings {
    /** @param {{Active?:boolean,Min?:number,Max?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {boolean} */
    Active;
    /** @type {number} */
    Min;
    /** @type {number} */
    Max;
}
export class MultipleResourceSettings {
    /** @param {{Active?:boolean,Min?:number,Max?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {boolean} */
    Active;
    /** @type {number} */
    Min;
    /** @type {number} */
    Max;
}
export class ServiceInfoResponse {
    /** @param {{Id?:number,Name?:string,Description?:string,ImageUrl?:string,LengthInMinutes?:number,MaxNumberOfSpotsPerBooking?:number,MinNumberOfSpotsPerBooking?:number,GroupBooking?:GroupBookingSettings,MultipleResource?:MultipleResourceSettings,IsGroupBooking?:boolean,IsPaymentEnabled?:boolean}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    Id;
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {string} */
    ImageUrl;
    /** @type {?number} */
    LengthInMinutes;
    /** @type {number} */
    MaxNumberOfSpotsPerBooking;
    /** @type {number} */
    MinNumberOfSpotsPerBooking;
    /** @type {GroupBookingSettings} */
    GroupBooking;
    /** @type {MultipleResourceSettings} */
    MultipleResource;
    /** @type {boolean} */
    IsGroupBooking;
    /** @type {boolean} */
    IsPaymentEnabled;
}
export class BookingLogEventTypeResponse {
    /** @param {{Id?:number,Name?:string,Description?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {number}
     * @description The event type id */
    Id;
    /**
     * @type {string}
     * @description The event type name */
    Name;
    /**
     * @type {string}
     * @description The event type description */
    Description;
}
export class BookingLogQueryResponse {
    /** @param {{Id?:number,BookingId?:number,EventTypeId?:number,EventType?:BookingLogEventTypeResponse,Comments?:string,UserName?:string,Created?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {number}
     * @description The booking log id */
    Id;
    /**
     * @type {number}
     * @description The booking id */
    BookingId;
    /**
     * @type {number}
     * @description The type of event */
    EventTypeId;
    /**
     * @type {BookingLogEventTypeResponse}
     * @description The type of event */
    EventType;
    /**
     * @type {string}
     * @description Comments that could be added to the event log item */
    Comments;
    /**
     * @type {string}
     * @description The user created the event */
    UserName;
    /**
     * @type {string}
     * @description Then date when the event occured */
    Created;
}
export class CurrencyInfoResponse {
    /** @param {{Id?:string,Name?:string,CurrencySign?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The currency id */
    Id;
    /**
     * @type {string}
     * @description The currency id */
    Name;
    /**
     * @type {string}
     * @description The currency id */
    CurrencySign;
}
export class BookingPaymentLogQueryResponse {
    /** @param {{Id?:number,BookingId?:number,PaymentReferenceId?:string,OrderItemReferenceId?:string,PaymentProviderId?:number,Amount?:number,VAT?:number,AmountCredited?:number,CurrencyId?:string,CurrencyInfo?:CurrencyInfoResponse,Comments?:string,Created?:string,Updated?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {number}
     * @description The booking payment log id */
    Id;
    /**
     * @type {number}
     * @description The booking id */
    BookingId;
    /**
     * @type {string}
     * @description The payment reference id */
    PaymentReferenceId;
    /**
     * @type {string}
     * @description The payment order item reference id */
    OrderItemReferenceId;
    /**
     * @type {?number}
     * @description The payment reference id */
    PaymentProviderId;
    /**
     * @type {number}
     * @description The payment amount */
    Amount;
    /**
     * @type {number}
     * @description The payment VAT in percent */
    VAT;
    /**
     * @type {number}
     * @description The payment amount that is credited */
    AmountCredited;
    /**
     * @type {string}
     * @description The payment currency id */
    CurrencyId;
    /**
     * @type {CurrencyInfoResponse}
     * @description The payment currency info */
    CurrencyInfo;
    /**
     * @type {string}
     * @description Comments that could be added to the event log item */
    Comments;
    /**
     * @type {string}
     * @description The date when the payment items was created */
    Created;
    /**
     * @type {string}
     * @description The date when the payment items was update */
    Updated;
}
export class BookingCheckoutQueryResponse {
    /** @param {{Id?:string,BookingId?:number,PurchaseId?:number,ExpirationTime?:string,Snippet?:string,Status?:string,Message?:string,Created?:string,Updated?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The checkout id */
    Id;
    /**
     * @type {number}
     * @description The booking id */
    BookingId;
    /**
     * @type {?number}
     * @description The purchase id */
    PurchaseId;
    /**
     * @type {?string}
     * @description The payment checkout expiration datetime */
    ExpirationTime;
    /**
     * @type {string}
     * @description The payment snippet code */
    Snippet;
    /**
     * @type {string}
     * @description The payment status */
    Status;
    /**
     * @type {string}
     * @description Log message */
    Message;
    /**
     * @type {string}
     * @description When the checkout log item was created */
    Created;
    /**
     * @type {string}
     * @description When the checkout log item was updated */
    Updated;
}
export class ExternalReferenceResponse {
    /** @param {{CompanyId?:string,Id?:string,OwnerId?:string,ReferenceType?:string,ExternalData?:string,CreatedBy?:string,Updated?:string,Created?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    CompanyId;
    /** @type {string} */
    Id;
    /** @type {string} */
    OwnerId;
    /** @type {string} */
    ReferenceType;
    /** @type {string} */
    ExternalData;
    /** @type {string} */
    CreatedBy;
    /** @type {string} */
    Updated;
    /** @type {string} */
    Created;
}
export class BookingCalendarExportStatus {
    /** @param {{CalendarId?:string,BookingId?:number,Synced?:boolean}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    CalendarId;
    /** @type {number} */
    BookingId;
    /** @type {?boolean} */
    Synced;
}
export class BookingQueryResponse {
    /** @param {{Id?:number,CompanyId?:string,From?:string,To?:string,Status?:BookingStatusEnum,StatusId?:number,StatusName?:string,StatusInfo?:BookingStatusQueryResponse,SendEmailReminder?:boolean,SendSmsReminder?:boolean,SendSmsConfirmation?:boolean,SendEmailConfirmation?:boolean,LastTimeToUnBook?:string,CustomFields?:CustomFieldConfigData[],CustomFieldValues?:CustomFieldDataResponse[],BookedResourceTypes?:BookedResourceType[],Company?:BookedCompany,Customer?:BookedCustomer,Quantities?:BookedQuantity[],Service?:ServiceInfoResponse,PaymentExpiration?:string,Log?:BookingLogQueryResponse[],PaymentLog?:BookingPaymentLogQueryResponse[],CheckoutLog?:BookingCheckoutQueryResponse[],ExternalReference?:ExternalReferenceResponse[],ResponseStatus?:ResponseStatus,CalendarExportStatus?:BookingCalendarExportStatus,LengthInMinutes?:number,BookedBy?:string,BookedComments?:string,UnbookedComments?:string,CommentsToCustomer?:string,CreatedDate?:string,UpdatedDate?:string,UnbookedOn?:string,CancellationCode?:string,RatingCode?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    Id;
    /** @type {string} */
    CompanyId;
    /** @type {string} */
    From;
    /** @type {string} */
    To;
    /** @type {BookingStatusEnum} */
    Status;
    /** @type {number} */
    StatusId;
    /** @type {string} */
    StatusName;
    /** @type {BookingStatusQueryResponse} */
    StatusInfo;
    /** @type {boolean} */
    SendEmailReminder;
    /** @type {boolean} */
    SendSmsReminder;
    /** @type {boolean} */
    SendSmsConfirmation;
    /** @type {boolean} */
    SendEmailConfirmation;
    /** @type {?string} */
    LastTimeToUnBook;
    /** @type {CustomFieldConfigData[]} */
    CustomFields;
    /** @type {CustomFieldDataResponse[]} */
    CustomFieldValues;
    /** @type {BookedResourceType[]} */
    BookedResourceTypes;
    /** @type {BookedCompany} */
    Company;
    /** @type {BookedCustomer} */
    Customer;
    /** @type {BookedQuantity[]} */
    Quantities;
    /** @type {ServiceInfoResponse} */
    Service;
    /** @type {?string} */
    PaymentExpiration;
    /** @type {BookingLogQueryResponse[]} */
    Log;
    /** @type {BookingPaymentLogQueryResponse[]} */
    PaymentLog;
    /** @type {BookingCheckoutQueryResponse[]} */
    CheckoutLog;
    /** @type {ExternalReferenceResponse[]} */
    ExternalReference;
    /** @type {ResponseStatus} */
    ResponseStatus;
    /** @type {BookingCalendarExportStatus} */
    CalendarExportStatus;
    /** @type {?number} */
    LengthInMinutes;
    /** @type {string} */
    BookedBy;
    /** @type {string} */
    BookedComments;
    /** @type {string} */
    UnbookedComments;
    /** @type {string} */
    CommentsToCustomer;
    /** @type {string} */
    CreatedDate;
    /** @type {string} */
    UpdatedDate;
    /** @type {?string} */
    UnbookedOn;
    /** @type {string} */
    CancellationCode;
    /** @type {string} */
    RatingCode;
}
export class BaseModel {
    constructor(init) { Object.assign(this, init) }
}
export class ServerData {
    /** @param {{HTTP_HOST?:string,HTTP_CONNECTION?:string,HTTP_CACHE_CONTROL?:string,HTTP_ACCEPT?:string,HTTP_USER_AGENT?:string,HTTP_ACCEPT_ENCODING?:string,HTTP_ACCEPT_LANGUAGE?:string,PATH?:string,SERVER_SOFTWARE?:string,SERVER_NAME?:string,SERVER_ADDR?:string,SERVER_PORT?:string,REMOTE_ADDR?:string,REMOTE_PORT?:string,GATEWAY_INTERFACE?:string,SERVER_PROTOCOL?:string,REQUEST_METHOD?:string,QUERY_STRING?:string,REQUEST_TIME?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    HTTP_HOST;
    /** @type {string} */
    HTTP_CONNECTION;
    /** @type {string} */
    HTTP_CACHE_CONTROL;
    /** @type {string} */
    HTTP_ACCEPT;
    /** @type {string} */
    HTTP_USER_AGENT;
    /** @type {string} */
    HTTP_ACCEPT_ENCODING;
    /** @type {string} */
    HTTP_ACCEPT_LANGUAGE;
    /** @type {string} */
    PATH;
    /** @type {string} */
    SERVER_SOFTWARE;
    /** @type {string} */
    SERVER_NAME;
    /** @type {string} */
    SERVER_ADDR;
    /** @type {string} */
    SERVER_PORT;
    /** @type {string} */
    REMOTE_ADDR;
    /** @type {string} */
    REMOTE_PORT;
    /** @type {string} */
    GATEWAY_INTERFACE;
    /** @type {string} */
    SERVER_PROTOCOL;
    /** @type {string} */
    REQUEST_METHOD;
    /** @type {string} */
    QUERY_STRING;
    /** @type {string} */
    REQUEST_TIME;
}
export class Credentials {
    /** @param {{hash?:string,id?:string,version?:string,client?:string,serverdata?:ServerData,time?:string,test?:string,language?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    hash;
    /** @type {string} */
    id;
    /** @type {string} */
    version;
    /** @type {string} */
    client;
    /** @type {ServerData} */
    serverdata;
    /** @type {string} */
    time;
    /** @type {string} */
    test;
    /** @type {string} */
    language;
}
export class CheckoutData {
    /** @param {{terms?:string,privacyPolicy?:string,redirectOnSuccess?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    terms;
    /** @type {string} */
    privacyPolicy;
    /** @type {string} */
    redirectOnSuccess;
}
export class CheckoutPaymentData {
    /** @param {{currency?:string,language?:string,country?:string,autoactivate?:string,orderid?:string,returnmethod?:string,accepturl?:string,cancelurl?:string,callbackurl?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    currency;
    /** @type {string} */
    language;
    /** @type {string} */
    country;
    /** @type {string} */
    autoactivate;
    /** @type {string} */
    orderid;
    /** @type {string} */
    returnmethod;
    /** @type {string} */
    accepturl;
    /** @type {string} */
    cancelurl;
    /** @type {string} */
    callbackurl;
}
export class PaymentInfo {
    /** @param {{paymentdate?:string,paymentterms?:string,yourreference?:string,ourreference?:string,projectname?:string,deliverymethod?:string,deliveryterms?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    paymentdate;
    /** @type {string} */
    paymentterms;
    /** @type {string} */
    yourreference;
    /** @type {string} */
    ourreference;
    /** @type {string} */
    projectname;
    /** @type {string} */
    deliverymethod;
    /** @type {string} */
    deliveryterms;
}
export class CartHandling {
    /** @param {{withouttax?:string,taxrate?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    withouttax;
    /** @type {string} */
    taxrate;
}
export class CartTotal {
    /** @param {{rounding?:string,withouttax?:string,tax?:string,withtax?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    rounding;
    /** @type {string} */
    withouttax;
    /** @type {string} */
    tax;
    /** @type {string} */
    withtax;
}
export class Shipping {
    /** @param {{firstname?:string,lastname?:string,company?:string,street?:string,street2?:string,zip?:string,city?:string,country?:string,phone?:string,withouttax?:string,taxrate?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    firstname;
    /** @type {string} */
    lastname;
    /** @type {string} */
    company;
    /** @type {string} */
    street;
    /** @type {string} */
    street2;
    /** @type {string} */
    zip;
    /** @type {string} */
    city;
    /** @type {string} */
    country;
    /** @type {string} */
    phone;
    /** @type {string} */
    withouttax;
    /** @type {string} */
    taxrate;
}
export class Cart {
    /** @param {{Handling?:CartHandling,Total?:CartTotal,Shipping?:Shipping}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {CartHandling} */
    Handling;
    /** @type {CartTotal} */
    Total;
    /** @type {Shipping} */
    Shipping;
}
export class CustomerBilling {
    /** @param {{firstname?:string,lastname?:string,company?:string,street?:string,street2?:string,zip?:string,city?:string,country?:string,phone?:string,email?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    firstname;
    /** @type {string} */
    lastname;
    /** @type {string} */
    company;
    /** @type {string} */
    street;
    /** @type {string} */
    street2;
    /** @type {string} */
    zip;
    /** @type {string} */
    city;
    /** @type {string} */
    country;
    /** @type {string} */
    phone;
    /** @type {string} */
    email;
}
export class QvicklyCustomer {
    /** @param {{nr?:string,pno?:string,Billing?:CustomerBilling}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    nr;
    /** @type {string} */
    pno;
    /** @type {CustomerBilling} */
    Billing;
}
export class InitCheckoutData {
    /** @param {{CheckoutData?:CheckoutData,PaymentData?:CheckoutPaymentData,PaymentInfo?:PaymentInfo,Articles?:QvicklyArticle[],Cart?:Cart,QvicklyCustomer?:QvicklyCustomer}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {CheckoutData} */
    CheckoutData;
    /** @type {CheckoutPaymentData} */
    PaymentData;
    /** @type {PaymentInfo} */
    PaymentInfo;
    /** @type {QvicklyArticle[]} */
    Articles;
    /** @type {Cart} */
    Cart;
    /** @type {QvicklyCustomer} */
    QvicklyCustomer;
}
export class InitCheckoutRequestBody {
    /** @param {{credentials?:Credentials,data?:InitCheckoutData,function?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {Credentials} */
    credentials;
    /** @type {InitCheckoutData} */
    data;
    /** @type {string} */
    function;
}
export class QvicklyCheckoutResponse {
    /** @param {{Number?:number,Status?:string,OrderId?:string,Url?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    Number;
    /** @type {string} */
    Status;
    /** @type {string} */
    OrderId;
    /** @type {string} */
    Url;
}
export class QvikclyPaymentData {
    /** @param {{method?:string,paymentplanid?:string,currency?:string,country?:string,language?:string,autoactivate?:string,orderid?:string,status?:string,paymentid_related?:string,url?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    method;
    /** @type {string} */
    paymentplanid;
    /** @type {string} */
    currency;
    /** @type {string} */
    country;
    /** @type {string} */
    language;
    /** @type {string} */
    autoactivate;
    /** @type {string} */
    orderid;
    /** @type {string} */
    status;
    /** @type {string} */
    paymentid_related;
    /** @type {string} */
    url;
}
export class Card {
    /** @param {{promptname?:string,recurring?:string,recurringnr?:string,accepturl?:string,cancelurl?:string,callbackurl?:string,returnmethod?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    promptname;
    /** @type {string} */
    recurring;
    /** @type {string} */
    recurringnr;
    /** @type {string} */
    accepturl;
    /** @type {string} */
    cancelurl;
    /** @type {string} */
    callbackurl;
    /** @type {string} */
    returnmethod;
}
export class Settlement {
    /** @param {{number?:string,date?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    number;
    /** @type {string} */
    date;
}
export class QvicklyPaymentResponse {
    /** @param {{PaymentData?:QvikclyPaymentData,PaymentInfo?:PaymentInfo,Card?:Card,Settlement?:Settlement,QvicklyCustomer?:QvicklyCustomer,Articles?:QvicklyArticle[],Cart?:Cart}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {QvikclyPaymentData} */
    PaymentData;
    /** @type {PaymentInfo} */
    PaymentInfo;
    /** @type {Card} */
    Card;
    /** @type {Settlement} */
    Settlement;
    /** @type {QvicklyCustomer} */
    QvicklyCustomer;
    /** @type {QvicklyArticle[]} */
    Articles;
    /** @type {Cart} */
    Cart;
}
/** @typedef {'None'|'Created'|'FormsFilled'|'ReadyToPay'|'ProcessingPayment'|'ReadyToShip'|'Shipped'|'PaidToAccount'|'Canceled'|'Credited'|'Expired'|'Denied'} */
export var Payson2CheckoutStatus;
(function (Payson2CheckoutStatus) {
    Payson2CheckoutStatus["None"] = "None"
    Payson2CheckoutStatus["Created"] = "Created"
    Payson2CheckoutStatus["FormsFilled"] = "FormsFilled"
    Payson2CheckoutStatus["ReadyToPay"] = "ReadyToPay"
    Payson2CheckoutStatus["ProcessingPayment"] = "ProcessingPayment"
    Payson2CheckoutStatus["ReadyToShip"] = "ReadyToShip"
    Payson2CheckoutStatus["Shipped"] = "Shipped"
    Payson2CheckoutStatus["PaidToAccount"] = "PaidToAccount"
    Payson2CheckoutStatus["Canceled"] = "Canceled"
    Payson2CheckoutStatus["Credited"] = "Credited"
    Payson2CheckoutStatus["Expired"] = "Expired"
    Payson2CheckoutStatus["Denied"] = "Denied"
})(Payson2CheckoutStatus || (Payson2CheckoutStatus = {}));
/** @typedef {'Person'|'Business'} */
export var CustomerType;
(function (CustomerType) {
    CustomerType["Person"] = "Person"
    CustomerType["Business"] = "Business"
})(CustomerType || (CustomerType = {}));
export class UserAccessKeys extends BaseModel {
    /** @param {{CompanyId?:string,AccessKeyTypeId?:number,Value?:string,CustomerId?:string,Description?:string,Id?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    AccessKeyTypeId;
    /** @type {string} */
    Value;
    /** @type {string} */
    CustomerId;
    /** @type {string} */
    Description;
    /** @type {string} */
    Id;
}
export class ExternalReference extends BaseModel {
    /** @param {{CompanyId?:string,Id?:string,OwnerId?:string,ReferenceType?:string,ExternalData?:string,CreatedBy?:string,Updated?:string,Created?:string,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CompanyId;
    /** @type {string} */
    Id;
    /** @type {string} */
    OwnerId;
    /** @type {string} */
    ReferenceType;
    /** @type {string} */
    ExternalData;
    /** @type {string} */
    CreatedBy;
    /** @type {string} */
    Updated;
    /** @type {string} */
    Created;
    /** @type {?string} */
    ModifiedDate;
}
/** @typedef {number} */
export var CompanyStatus;
(function (CompanyStatus) {
    CompanyStatus[CompanyStatus["Registered"] = 1] = "Registered"
    CompanyStatus[CompanyStatus["AwaitingApproval"] = 2] = "AwaitingApproval"
    CompanyStatus[CompanyStatus["Approved"] = 3] = "Approved"
    CompanyStatus[CompanyStatus["Inactive"] = 4] = "Inactive"
    CompanyStatus[CompanyStatus["ClosedDown"] = 5] = "ClosedDown"
    CompanyStatus[CompanyStatus["NotApproved"] = 6] = "NotApproved"
})(CompanyStatus || (CompanyStatus = {}));
export class CustomFieldValue extends BaseModel {
    /** @param {{CompanyId?:string,Id?:number,Value?:string,Active?:boolean,SortOrder?:number,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    Id;
    /** @type {string} */
    Value;
    /** @type {boolean} */
    Active;
    /** @type {?number} */
    SortOrder;
    /** @type {?string} */
    ModifiedDate;
}
export class CustomField extends BaseModel {
    /** @param {{Table?:string,Column?:string,DataType?:string,Description?:string,Active?:boolean,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Table;
    /** @type {string} */
    Column;
    /** @type {string} */
    DataType;
    /** @type {string} */
    Description;
    /** @type {boolean} */
    Active;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class RegEx extends BaseModel {
    /** @param {{Name?:string,Description?:string,RegExCode?:string,ErrorMessage?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {string} */
    RegExCode;
    /** @type {string} */
    ErrorMessage;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
/** @typedef {'NotDefined'|'RecurringSchedule'|'DateSchedule'} */
export var ScheduleType;
(function (ScheduleType) {
    ScheduleType["NotDefined"] = "NotDefined"
    ScheduleType["RecurringSchedule"] = "RecurringSchedule"
    ScheduleType["DateSchedule"] = "DateSchedule"
})(ScheduleType || (ScheduleType = {}));
export class Resource extends BaseModel {
    /** @param {{Priority?:number,Schedules?:IList<ISchedule>,Exceptions?:IList<ITimeException>,Bookings?:IList<IBookedTime>,CustomFieldsConfig?:IList<CustomFieldConfig>,CustomFieldsData?:IList<CustomFieldDataResponse>,CompanyId?:string,Id?:number,Name?:string,Active?:boolean,Description?:string,ImageUrl?:string,UpdatedDate?:string,CreatedDate?:string,Color?:string,Email?:string,MobilePhone?:string,EmailNotification?:boolean,SMSNotification?:boolean,SendSMSReminder?:boolean,SendEmailReminder?:boolean,ModifiedDate?:string,AccessGroup?:string,TextField1?:string,TextField2?:string,TextField3?:string,TextField4?:string,TextField5?:string,TextField6?:string,TextField7?:string,TextField8?:string,TextField9?:string,TextField10?:string,TextField11?:string,TextField12?:string,TextField13?:string,TextField14?:string,TextField15?:string,TextField16?:string,TextField17?:string,TextField18?:string,TextField19?:string,TextField20?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {number} */
    Priority;
    /** @type {IList<ISchedule>} */
    Schedules;
    /** @type {IList<ITimeException>} */
    Exceptions;
    /** @type {IList<IBookedTime>} */
    Bookings;
    /** @type {IList<CustomFieldConfig>} */
    CustomFieldsConfig;
    /** @type {IList<CustomFieldDataResponse>} */
    CustomFieldsData;
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    Id;
    /** @type {string} */
    Name;
    /** @type {boolean} */
    Active;
    /** @type {string} */
    Description;
    /** @type {string} */
    ImageUrl;
    /** @type {string} */
    UpdatedDate;
    /** @type {string} */
    CreatedDate;
    /** @type {string} */
    Color;
    /** @type {string} */
    Email;
    /** @type {string} */
    MobilePhone;
    /** @type {?boolean} */
    EmailNotification;
    /** @type {?boolean} */
    SMSNotification;
    /** @type {boolean} */
    SendSMSReminder;
    /** @type {boolean} */
    SendEmailReminder;
    /** @type {?string} */
    ModifiedDate;
    /** @type {string} */
    AccessGroup;
    /** @type {string} */
    TextField1;
    /** @type {string} */
    TextField2;
    /** @type {string} */
    TextField3;
    /** @type {string} */
    TextField4;
    /** @type {string} */
    TextField5;
    /** @type {string} */
    TextField6;
    /** @type {string} */
    TextField7;
    /** @type {string} */
    TextField8;
    /** @type {string} */
    TextField9;
    /** @type {string} */
    TextField10;
    /** @type {string} */
    TextField11;
    /** @type {string} */
    TextField12;
    /** @type {string} */
    TextField13;
    /** @type {string} */
    TextField14;
    /** @type {string} */
    TextField15;
    /** @type {string} */
    TextField16;
    /** @type {string} */
    TextField17;
    /** @type {string} */
    TextField18;
    /** @type {string} */
    TextField19;
    /** @type {string} */
    TextField20;
}
export class ResourceType extends BaseModel {
    /** @param {{SelectableByUser?:boolean,Resources?:Resource[],CompanyId?:string,Id?:number,Name?:string,Description?:string,Active?:boolean,UpdatedDate?:string,CreatedDate?:string,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {boolean} */
    SelectableByUser;
    /** @type {Resource[]} */
    Resources;
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    Id;
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {boolean} */
    Active;
    /** @type {string} */
    UpdatedDate;
    /** @type {string} */
    CreatedDate;
    /** @type {?string} */
    ModifiedDate;
}
export class RebateCodeType extends BaseModel {
    /** @param {{Name?:string,Description?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class AppliedRebateCodes {
    /** @param {{RebateCodeId?:number,RebateCodeSign?:string,RebateCodeValue?:number,RebateAmount?:number,RebateCodeType?:RebateCodeType}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    RebateCodeId;
    /** @type {string} */
    RebateCodeSign;
    /** @type {number} */
    RebateCodeValue;
    /** @type {number} */
    RebateAmount;
    /** @type {RebateCodeType} */
    RebateCodeType;
}
export class TotalPriceInformation {
    /** @param {{TotalPrice?:number,TotalVATAmount?:number,TotalRebate?:number,TotalPriceBeforeRebate?:number,AppliedCodes?:AppliedRebateCodes[],PriceSign?:string,CurrencyId?:string,VAT?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    TotalPrice;
    /** @type {number} */
    TotalVATAmount;
    /** @type {number} */
    TotalRebate;
    /** @type {number} */
    TotalPriceBeforeRebate;
    /** @type {AppliedRebateCodes[]} */
    AppliedCodes;
    /** @type {string} */
    PriceSign;
    /** @type {string} */
    CurrencyId;
    /** @type {number} */
    VAT;
}
export class Currency extends BaseModel {
    /** @param {{Name?:string,CurrencySign?:string,Active?:boolean,ModifiedDate?:string,Id?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    CurrencySign;
    /** @type {boolean} */
    Active;
    /** @type {?string} */
    ModifiedDate;
    /** @type {string} */
    Id;
}
export class PriceMapping extends BaseModel {
    /** @param {{CompanyId?:string,Id?:string,PriceId?:number,ReferenceType?:string,ExternalReference?:string,UpdatedDate?:string,CreatedDate?:string,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CompanyId;
    /** @type {string} */
    Id;
    /** @type {number} */
    PriceId;
    /** @type {string} */
    ReferenceType;
    /** @type {string} */
    ExternalReference;
    /** @type {string} */
    UpdatedDate;
    /** @type {string} */
    CreatedDate;
    /** @type {?string} */
    ModifiedDate;
}
/** @typedef {number} */
export var BokaMeraDayOfWeek;
(function (BokaMeraDayOfWeek) {
    BokaMeraDayOfWeek[BokaMeraDayOfWeek["Monday"] = 1] = "Monday"
    BokaMeraDayOfWeek[BokaMeraDayOfWeek["Tuesday"] = 2] = "Tuesday"
    BokaMeraDayOfWeek[BokaMeraDayOfWeek["Wednesday"] = 3] = "Wednesday"
    BokaMeraDayOfWeek[BokaMeraDayOfWeek["Thursday"] = 4] = "Thursday"
    BokaMeraDayOfWeek[BokaMeraDayOfWeek["Friday"] = 5] = "Friday"
    BokaMeraDayOfWeek[BokaMeraDayOfWeek["Saturday"] = 6] = "Saturday"
    BokaMeraDayOfWeek[BokaMeraDayOfWeek["Sunday"] = 7] = "Sunday"
})(BokaMeraDayOfWeek || (BokaMeraDayOfWeek = {}));
export class ServicePriceDayOfWeekRelation extends BaseModel {
    /** @param {{DayOfWeek?:BokaMeraDayOfWeek,CompanyId?:string,ServicePriceId?:number,DayOfWeekId?:number,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {BokaMeraDayOfWeek} */
    DayOfWeek;
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    ServicePriceId;
    /** @type {number} */
    DayOfWeekId;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class RebateCodeStatus extends BaseModel {
    /** @param {{Name?:string,Description?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class ArticleServiceRelation extends BaseModel {
    /** @param {{CompanyId?:string,Id?:number,ServiceId?:number,ArticleId?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    Id;
    /** @type {number} */
    ServiceId;
    /** @type {number} */
    ArticleId;
}
/** @typedef {number} */
export var ArticleTypeEnum;
(function (ArticleTypeEnum) {
    ArticleTypeEnum[ArticleTypeEnum["ServiceArticle"] = 1] = "ServiceArticle"
    ArticleTypeEnum[ArticleTypeEnum["StandAloneArticle"] = 2] = "StandAloneArticle"
    ArticleTypeEnum[ArticleTypeEnum["RebateCodePunchTicketArticle"] = 3] = "RebateCodePunchTicketArticle"
    ArticleTypeEnum[ArticleTypeEnum["RebateCodeGiftCardArticle"] = 4] = "RebateCodeGiftCardArticle"
    ArticleTypeEnum[ArticleTypeEnum["RebateCodeValueCardArticle"] = 5] = "RebateCodeValueCardArticle"
})(ArticleTypeEnum || (ArticleTypeEnum = {}));
export class Article extends BaseModel {
    /** @param {{Company?:Company,CurrencyInfo?:Currency,ArticleServiceRelations?:ArticleServiceRelation[],ServiceIds?:number[],ArticleType?:ArticleTypeEnum,ArticleTypeName?:string,CompanyId?:string,Id?:number,Name?:string,ArticleTypeId?:number,Description?:string,ImageUrl?:string,Active?:boolean,Amount?:number,Price?:number,CurrencyId?:string,UpdatedDate?:string,CreatedDate?:string,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {Company} */
    Company;
    /** @type {Currency} */
    CurrencyInfo;
    /** @type {ArticleServiceRelation[]} */
    ArticleServiceRelations;
    /** @type {number[]} */
    ServiceIds;
    /** @type {ArticleTypeEnum} */
    ArticleType;
    /** @type {string} */
    ArticleTypeName;
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    Id;
    /** @type {string} */
    Name;
    /** @type {number} */
    ArticleTypeId;
    /** @type {string} */
    Description;
    /** @type {string} */
    ImageUrl;
    /** @type {boolean} */
    Active;
    /** @type {number} */
    Amount;
    /** @type {number} */
    Price;
    /** @type {string} */
    CurrencyId;
    /** @type {string} */
    UpdatedDate;
    /** @type {string} */
    CreatedDate;
    /** @type {?string} */
    ModifiedDate;
}
export class RebateCodeDayOfWeekRelation extends BaseModel {
    /** @param {{DayOfWeek?:BokaMeraDayOfWeek,DayOfWeekId?:number,RebateCodeId?:number,CompanyId?:string,Id?:number,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {BokaMeraDayOfWeek} */
    DayOfWeek;
    /** @type {number} */
    DayOfWeekId;
    /** @type {number} */
    RebateCodeId;
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    Id;
    /** @type {?string} */
    ModifiedDate;
}
export class RebateCodeServiceRelation extends BaseModel {
    /** @param {{CompanyId?:string,ServiceId?:number,RebateCodeId?:number,Id?:number,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    ServiceId;
    /** @type {number} */
    RebateCodeId;
    /** @type {number} */
    Id;
    /** @type {?string} */
    ModifiedDate;
}
export class RebateCodeBookingPriceRelation extends BaseModel {
    /** @param {{CompanyId?:string,PriceId?:number,RebateCodeId?:number,Id?:number,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    PriceId;
    /** @type {number} */
    RebateCodeId;
    /** @type {number} */
    Id;
    /** @type {?string} */
    ModifiedDate;
}
export class RebateCodeCustomerRelation extends BaseModel {
    /** @param {{CompanyId?:string,CustomerId?:string,RebateCodeId?:number,Id?:number,ModifiedDate?:string,RebateCodeEmailSentToCustomer?:boolean,MessageToReceiver?:string,Buyer?:boolean}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CompanyId;
    /** @type {string} */
    CustomerId;
    /** @type {number} */
    RebateCodeId;
    /** @type {number} */
    Id;
    /** @type {?string} */
    ModifiedDate;
    /** @type {boolean} */
    RebateCodeEmailSentToCustomer;
    /** @type {string} */
    MessageToReceiver;
    /** @type {boolean} */
    Buyer;
}
export class DaysOfWeek extends BaseModel {
    /** @param {{DayOfWeek?:string,DayOfWeekTranslation?:string,DayOfWeekActive?:boolean,DayOfWeekSortOrder?:number,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    DayOfWeek;
    /** @type {string} */
    DayOfWeekTranslation;
    /** @type {?boolean} */
    DayOfWeekActive;
    /** @type {?number} */
    DayOfWeekSortOrder;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class RebateCodeTransaction extends BaseModel {
    /** @param {{Booking?:Booking,RebateCode?:RebateCode,Customer?:Customer,Id?:number,CompanyId?:string,Note?:string,RebateCodeId?:number,Amount?:number,Usage?:number,BookingId?:number,UpdatedDate?:string,CreatedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {Booking} */
    Booking;
    /** @type {RebateCode} */
    RebateCode;
    /** @type {Customer} */
    Customer;
    /** @type {number} */
    Id;
    /** @type {string} */
    CompanyId;
    /** @type {string} */
    Note;
    /** @type {number} */
    RebateCodeId;
    /** @type {number} */
    Amount;
    /** @type {number} */
    Usage;
    /** @type {?number} */
    BookingId;
    /** @type {string} */
    UpdatedDate;
    /** @type {string} */
    CreatedDate;
}
export class RebateCode extends PayableEntity {
    /** @param {{RebateCodeTypeId?:number,RebateCodeTypeInfo?:RebateCodeType,RebateCodeStatusId?:number,RebateCodeStatusInfo?:RebateCodeStatus,Article?:Article,Services?:Service[],RebateCodeDayOfWeekRelation?:RebateCodeDayOfWeekRelation[],RebateCodeServiceRelation?:RebateCodeServiceRelation[],RebateCodeBookingPriceRelation?:RebateCodeBookingPriceRelation[],RebateCodeCustomerRelation?:RebateCodeCustomerRelation[],ServicesNames?:string,DaysOfWeek?:DaysOfWeek[],RebateCodeStatus?:RebateCodeStatus,RebateCodeType?:RebateCodeType,Transactions?:RebateCodeTransaction[],RemainingAmount?:number,RemainingUsage?:number,CurrentNumberOfUsesPerCustomer?:number,IsSpecificByDayOfWeek?:boolean,Active?:boolean,ActiveByStatus?:boolean,RebateCodeCurrencySign?:string,CurrencyInfo?:Currency,PaymentReceived?:boolean,InternalReferenceId?:string,ValidFrom?:string,ValidTo?:string,RebateCodeSign?:string,RebateCodeValue?:number,MaxNumberOfUses?:number,MaxNumberOfUsesPerCustomer?:number,NumberOfUsesUsed?:number,PersonalNote?:string,CreatedBy?:string,Created?:string,UpdatedBy?:string,UpdatedDate?:string,FromTime?:string,ToTime?:string,ModifiedDate?:string,Id?:number,ArticleId?:number,DbFactory?:IDbConnectionFactory,QvicklyPaymentManager?:IBokameraPaymentManager<InitCheckoutRequestBody, QvicklyCheckoutResponse, QvicklyPaymentResponse>,Payson2PaymentManager?:IBokameraPaymentManager<Payson2CheckoutResponse, Payson2CheckoutResponse, Payson2CheckoutResponse>,PaysonPaymentCheckout1?:IPaysonPaymentCheckout1,Logger?:ILogger<PayableEntity>,InternalReferenceId?:string,PaymentLog?:PaymentLog[],CompanyId?:string,PriceVat?:number,CurrencyId?:string,Customer?:Customer,Customers?:Customer[],Company?:Company}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {number} */
    RebateCodeTypeId;
    /** @type {RebateCodeType} */
    RebateCodeTypeInfo;
    /** @type {number} */
    RebateCodeStatusId;
    /** @type {RebateCodeStatus} */
    RebateCodeStatusInfo;
    /** @type {Article} */
    Article;
    /** @type {Service[]} */
    Services;
    /** @type {RebateCodeDayOfWeekRelation[]} */
    RebateCodeDayOfWeekRelation;
    /** @type {RebateCodeServiceRelation[]} */
    RebateCodeServiceRelation;
    /** @type {RebateCodeBookingPriceRelation[]} */
    RebateCodeBookingPriceRelation;
    /** @type {RebateCodeCustomerRelation[]} */
    RebateCodeCustomerRelation;
    /** @type {string} */
    ServicesNames;
    /** @type {DaysOfWeek[]} */
    DaysOfWeek;
    /** @type {RebateCodeStatus} */
    RebateCodeStatus;
    /** @type {RebateCodeType} */
    RebateCodeType;
    /** @type {RebateCodeTransaction[]} */
    Transactions;
    /** @type {?number} */
    RemainingAmount;
    /** @type {?number} */
    RemainingUsage;
    /** @type {number} */
    CurrentNumberOfUsesPerCustomer;
    /** @type {boolean} */
    IsSpecificByDayOfWeek;
    /** @type {boolean} */
    Active;
    /** @type {boolean} */
    ActiveByStatus;
    /** @type {string} */
    RebateCodeCurrencySign;
    /** @type {Currency} */
    CurrencyInfo;
    /** @type {boolean} */
    PaymentReceived;
    /** @type {string} */
    InternalReferenceId;
    /** @type {string} */
    ValidFrom;
    /** @type {string} */
    ValidTo;
    /** @type {string} */
    RebateCodeSign;
    /** @type {number} */
    RebateCodeValue;
    /** @type {number} */
    MaxNumberOfUses;
    /** @type {number} */
    MaxNumberOfUsesPerCustomer;
    /** @type {number} */
    NumberOfUsesUsed;
    /** @type {string} */
    PersonalNote;
    /** @type {string} */
    CreatedBy;
    /** @type {string} */
    Created;
    /** @type {string} */
    UpdatedBy;
    /** @type {string} */
    UpdatedDate;
    /** @type {string} */
    FromTime;
    /** @type {string} */
    ToTime;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
    /** @type {?number} */
    ArticleId;
}
export class ServicePrice extends BaseModel {
    /** @param {{CurrencyId?:string,CurrencyInfo?:Currency,Service?:Service,PriceMappings?:PriceMapping[],isTimeSpecific?:boolean,isDaysOfWeekSpecific?:boolean,DayOfWeeks?:ServicePriceDayOfWeekRelation[],PriceBeforeRebate?:number,RebateCodesApplied?:RebateCode[],PriceText?:string,OverlappingPrices?:ServicePrice[],CompanyId?:string,Id?:number,ServiceId?:number,Price?:number,Updated?:string,Created?:string,FromTime?:string,ToTime?:string,VAT?:number,Category?:string,ModifiedDate?:string,From?:string,To?:string,CalculationTypeId?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CurrencyId;
    /** @type {Currency} */
    CurrencyInfo;
    /** @type {Service} */
    Service;
    /** @type {PriceMapping[]} */
    PriceMappings;
    /** @type {boolean} */
    isTimeSpecific;
    /** @type {boolean} */
    isDaysOfWeekSpecific;
    /** @type {ServicePriceDayOfWeekRelation[]} */
    DayOfWeeks;
    /** @type {?number} */
    PriceBeforeRebate;
    /** @type {RebateCode[]} */
    RebateCodesApplied;
    /** @type {string} */
    PriceText;
    /** @type {ServicePrice[]} */
    OverlappingPrices;
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    Id;
    /** @type {number} */
    ServiceId;
    /** @type {?number} */
    Price;
    /** @type {string} */
    Updated;
    /** @type {string} */
    Created;
    /** @type {string} */
    FromTime;
    /** @type {string} */
    ToTime;
    /** @type {number} */
    VAT;
    /** @type {string} */
    Category;
    /** @type {?string} */
    ModifiedDate;
    /** @type {string} */
    From;
    /** @type {string} */
    To;
    /** @type {number} */
    CalculationTypeId;
}
export class BookingStatusOptions {
    /** @param {{Id?:number,Name?:string,Description?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    Id;
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
}
export class ScheduleView extends BaseModel {
    /** @param {{Name?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class WeekNumberSetting extends BaseModel {
    /** @param {{Name?:string,Description?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class BookingTemplate extends BaseModel {
    /** @param {{Name?:string,Description?:string,UsedByApplication?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {string} */
    UsedByApplication;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class CalendarType extends BaseModel {
    /** @param {{Name?:string,Description?:string,Active?:boolean,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {boolean} */
    Active;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class FreeSpotTexts extends BaseModel {
    /** @param {{TextSingular?:string,TextPlural?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    TextSingular;
    /** @type {string} */
    TextPlural;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class BookingSettings extends BaseModel {
    /** @param {{FreeSpotTextsId?:number,SendEmailConfirmation?:boolean,ScheduleViewOptions?:ScheduleView[],WeekNumberSettingOptions?:WeekNumberSetting[],BookingTemplateOptions?:BookingTemplate[],CalendarTypeOptions?:CalendarType[],FreeSpotTextOptions?:FreeSpotTexts[],BookingStatusOptions?:BookingStatusOptions[],FreeSpotTextsInfo?:FreeSpotTexts,FreeSpotsTextSingular?:string,FreeSpotsTextPlural?:string,BookingStatusId?:number,ScheduleViewId?:number,BookingTemplateId?:number,CalendarTypeId?:number,AllowBookingOnUnbookedTimes?:boolean,SendEmailReminder?:boolean,SendSmsReminder?:boolean,SendSmsConfirmation?:boolean,EmailReminderTime?:number,SmsReminderTime?:number,MaxActiveBookings?:number,SendNotifications?:boolean,SendNotificationsEmail?:string,EnableMobileApp?:boolean,ScheduleStartTime?:string,ScheduleEndTime?:string,ReceiptTemplate?:string,ScheduleTimeSlotMinutes?:number,ShowFreeTimesLeft?:boolean,EnableICalGroupBookings?:boolean,AgreementTemplate?:string,ScheduleShowTimeExeptions?:boolean,EnableBookingsOnSameTime?:boolean,ShowWeekNumberSettingId?:number,EnableShowBookedTimes?:boolean,EnableSendFollowUpMessage?:boolean,FollowUpMessageTime?:number,MessageText?:string,ScheduleGroupResources?:boolean,BookSpotUserResponseMinutes?:number,IsBookSpotDirectly?:boolean,BookSpotDirectlyTimeLeftMinutes?:number,SendEmailNotificationQueue?:boolean,SendSMSNotificationQueue?:boolean,SchedulerDisableHorizontalScrolling?:boolean,BookOnlyOnExistingCustomers?:boolean,AutoGenerateUniquePinCode?:boolean,WeightedPrices?:boolean,ModifiedDate?:string,AutoCreateUserProfile?:boolean,ShowMultipleResourcesAsOne?:boolean,ShowMultiDayAsTime?:boolean,Id?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {number} */
    FreeSpotTextsId;
    /** @type {boolean} */
    SendEmailConfirmation;
    /** @type {ScheduleView[]} */
    ScheduleViewOptions;
    /** @type {WeekNumberSetting[]} */
    WeekNumberSettingOptions;
    /** @type {BookingTemplate[]} */
    BookingTemplateOptions;
    /** @type {CalendarType[]} */
    CalendarTypeOptions;
    /** @type {FreeSpotTexts[]} */
    FreeSpotTextOptions;
    /** @type {BookingStatusOptions[]} */
    BookingStatusOptions;
    /** @type {FreeSpotTexts} */
    FreeSpotTextsInfo;
    /** @type {string} */
    FreeSpotsTextSingular;
    /** @type {string} */
    FreeSpotsTextPlural;
    /** @type {number} */
    BookingStatusId;
    /** @type {number} */
    ScheduleViewId;
    /** @type {number} */
    BookingTemplateId;
    /** @type {number} */
    CalendarTypeId;
    /** @type {boolean} */
    AllowBookingOnUnbookedTimes;
    /** @type {boolean} */
    SendEmailReminder;
    /** @type {boolean} */
    SendSmsReminder;
    /** @type {boolean} */
    SendSmsConfirmation;
    /** @type {number} */
    EmailReminderTime;
    /** @type {number} */
    SmsReminderTime;
    /** @type {number} */
    MaxActiveBookings;
    /** @type {boolean} */
    SendNotifications;
    /** @type {string} */
    SendNotificationsEmail;
    /** @type {boolean} */
    EnableMobileApp;
    /** @type {?string} */
    ScheduleStartTime;
    /** @type {?string} */
    ScheduleEndTime;
    /** @type {string} */
    ReceiptTemplate;
    /** @type {number} */
    ScheduleTimeSlotMinutes;
    /** @type {boolean} */
    ShowFreeTimesLeft;
    /** @type {boolean} */
    EnableICalGroupBookings;
    /** @type {string} */
    AgreementTemplate;
    /** @type {boolean} */
    ScheduleShowTimeExeptions;
    /** @type {boolean} */
    EnableBookingsOnSameTime;
    /** @type {number} */
    ShowWeekNumberSettingId;
    /** @type {boolean} */
    EnableShowBookedTimes;
    /** @type {boolean} */
    EnableSendFollowUpMessage;
    /** @type {number} */
    FollowUpMessageTime;
    /** @type {string} */
    MessageText;
    /** @type {boolean} */
    ScheduleGroupResources;
    /** @type {number} */
    BookSpotUserResponseMinutes;
    /** @type {boolean} */
    IsBookSpotDirectly;
    /** @type {number} */
    BookSpotDirectlyTimeLeftMinutes;
    /** @type {boolean} */
    SendEmailNotificationQueue;
    /** @type {boolean} */
    SendSMSNotificationQueue;
    /** @type {boolean} */
    SchedulerDisableHorizontalScrolling;
    /** @type {boolean} */
    BookOnlyOnExistingCustomers;
    /** @type {boolean} */
    AutoGenerateUniquePinCode;
    /** @type {boolean} */
    WeightedPrices;
    /** @type {?string} */
    ModifiedDate;
    /** @type {boolean} */
    AutoCreateUserProfile;
    /** @type {boolean} */
    ShowMultipleResourcesAsOne;
    /** @type {boolean} */
    ShowMultiDayAsTime;
    /** @type {string} */
    Id;
}
export class AdminPaymentOptions extends BaseModel {
    /** @param {{Name?:string,Description?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class PaymentProviders extends BaseModel {
    /** @param {{Name?:string,Description?:string,Category?:string,Url?:string,Active?:boolean,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {string} */
    Category;
    /** @type {string} */
    Url;
    /** @type {boolean} */
    Active;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class PaymentSetting extends BaseModel {
    /** @param {{AdminPaymentOption?:AdminPaymentOptions,AdminPaymentOptions?:AdminPaymentOptions[],PaymentProviderOptions?:PaymentProviders[],Enabled?:boolean,InvoiceFee?:number,AllowCreditCardPayment?:boolean,AllowInvoicePayment?:boolean,AllowBankPayment?:boolean,GuaranteeOffered?:boolean,RefundOnCancelBooking?:boolean,DefaultPaymentOptionId?:number,PaymentProviderId?:number,SendPaymentRequestDirectly?:boolean,ModifiedDate?:string,Id?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {AdminPaymentOptions} */
    AdminPaymentOption;
    /** @type {AdminPaymentOptions[]} */
    AdminPaymentOptions;
    /** @type {PaymentProviders[]} */
    PaymentProviderOptions;
    /** @type {boolean} */
    Enabled;
    /** @type {number} */
    InvoiceFee;
    /** @type {boolean} */
    AllowCreditCardPayment;
    /** @type {boolean} */
    AllowInvoicePayment;
    /** @type {boolean} */
    AllowBankPayment;
    /** @type {boolean} */
    GuaranteeOffered;
    /** @type {boolean} */
    RefundOnCancelBooking;
    /** @type {?number} */
    DefaultPaymentOptionId;
    /** @type {number} */
    PaymentProviderId;
    /** @type {boolean} */
    SendPaymentRequestDirectly;
    /** @type {?string} */
    ModifiedDate;
    /** @type {string} */
    Id;
}
export class AverageRatingScore {
    /** @param {{AverageScore?:number,Score1Count?:number,Score2Count?:number,Score3Count?:number,Score4Count?:number,Score5Count?:number,Count?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    AverageScore;
    /** @type {number} */
    Score1Count;
    /** @type {number} */
    Score2Count;
    /** @type {number} */
    Score3Count;
    /** @type {number} */
    Score4Count;
    /** @type {number} */
    Score5Count;
    /** @type {number} */
    Count;
}
export class Review extends BaseModel {
    /** @param {{ReviewId?:string,CompanyId?:string,Title?:string,Description?:string,Author?:string,Status?:number,Created?:string,Updated?:string,ModifiedDate?:string,ReviewAnswer?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    ReviewId;
    /** @type {string} */
    CompanyId;
    /** @type {string} */
    Title;
    /** @type {string} */
    Description;
    /** @type {string} */
    Author;
    /** @type {number} */
    Status;
    /** @type {string} */
    Created;
    /** @type {string} */
    Updated;
    /** @type {?string} */
    ModifiedDate;
    /** @type {string} */
    ReviewAnswer;
}
export class Rating extends BaseModel {
    /** @param {{ReviewId?:string,Review?:Review,CompanyId?:string,BookingId?:number,RatingScore?:number,Status?:number,Created?:string,Updated?:string,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {?string} */
    ReviewId;
    /** @type {Review} */
    Review;
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    BookingId;
    /** @type {number} */
    RatingScore;
    /** @type {number} */
    Status;
    /** @type {string} */
    Created;
    /** @type {string} */
    Updated;
    /** @type {?string} */
    ModifiedDate;
}
export class Service extends BaseModel {
    /** @param {{ResourceTypes?:ResourceType[],Resources?:Resource[],TotalPrice?:TotalPriceInformation,Prices?:ServicePrice[],BookingStatusOptions?:BookingStatusOptions[],IsGroupBooking?:boolean,IsMultipleResource?:boolean,Settings?:BookingSettings,PaymentSetting?:PaymentSetting,BookingCustomFieldsConfig?:IList<CustomFieldConfig>,CustomerCustomFieldsConfig?:IList<CustomFieldConfig>,CustomFieldsConfig?:IList<CustomFieldConfig>,CustomFieldsData?:IList<CustomFieldDataResponse>,Schedules?:IList<ISchedule>,CustomerActiveBookings?:IList<Booking>,ScheduleType?:ScheduleType,LastTimeToUnbookThreshold?:string,LastTimeToBookThreshold?:string,RatingScore?:AverageRatingScore,Ratings?:Rating[],CompanyId?:string,Id?:number,Name?:string,Description?:string,Group?:string,Active?:boolean,SortOrder?:number,PauseAfterBooking?:number,UnbookBeforeDays?:number,UnbookBeforeHours?:number,UnbookBeforeMinutes?:number,BookBeforeDays?:number,BookBeforeHours?:number,BookBeforeMinutes?:number,Duration?:number,DurationTypeId?:number,MinDuration?:number,MaxDuration?:number,DurationInterval?:number,TotalSpots?:number,ImageUrl?:string,ScheduleTypeId?:number,UpdatedDate?:string,CreatedDate?:string,OnlyVisibleByAdmin?:boolean,MinNumberOfSpotsPerBooking?:number,MaxNumberOfSpotsPerBooking?:number,MinNumberOfResourcesToBook?:number,MaxNumberOfResourcesToBook?:number,IsPaymentEnabled?:boolean,MaxPaymentTime?:number,LockSpotsToBooking?:boolean,EnableBookingQueue?:boolean,ModifiedDate?:string,BookingStatusId?:number,EnableCodeLockSync?:boolean,EnableCustomerManualPayment?:boolean,PriceViewTypeId?:number,TextField1?:string,TextField2?:string,TextField3?:string,TextField4?:string,TextField5?:string,TextField6?:string,TextField7?:string,TextField8?:string,TextField9?:string,TextField10?:string,TextField11?:string,TextField12?:string,TextField13?:string,TextField14?:string,TextField15?:string,TextField16?:string,TextField17?:string,TextField18?:string,TextField19?:string,TextField20?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {ResourceType[]} */
    ResourceTypes;
    /** @type {Resource[]} */
    Resources;
    /** @type {TotalPriceInformation} */
    TotalPrice;
    /** @type {ServicePrice[]} */
    Prices;
    /** @type {BookingStatusOptions[]} */
    BookingStatusOptions;
    /** @type {boolean} */
    IsGroupBooking;
    /** @type {boolean} */
    IsMultipleResource;
    /** @type {BookingSettings} */
    Settings;
    /** @type {PaymentSetting} */
    PaymentSetting;
    /** @type {IList<CustomFieldConfig>} */
    BookingCustomFieldsConfig;
    /** @type {IList<CustomFieldConfig>} */
    CustomerCustomFieldsConfig;
    /** @type {IList<CustomFieldConfig>} */
    CustomFieldsConfig;
    /** @type {IList<CustomFieldDataResponse>} */
    CustomFieldsData;
    /** @type {IList<ISchedule>} */
    Schedules;
    /** @type {IList<Booking>} */
    CustomerActiveBookings;
    /** @type {ScheduleType} */
    ScheduleType;
    /** @type {string} */
    LastTimeToUnbookThreshold;
    /** @type {string} */
    LastTimeToBookThreshold;
    /** @type {AverageRatingScore} */
    RatingScore;
    /** @type {Rating[]} */
    Ratings;
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    Id;
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {string} */
    Group;
    /** @type {boolean} */
    Active;
    /** @type {number} */
    SortOrder;
    /** @type {number} */
    PauseAfterBooking;
    /** @type {number} */
    UnbookBeforeDays;
    /** @type {number} */
    UnbookBeforeHours;
    /** @type {number} */
    UnbookBeforeMinutes;
    /** @type {number} */
    BookBeforeDays;
    /** @type {number} */
    BookBeforeHours;
    /** @type {number} */
    BookBeforeMinutes;
    /** @type {?number} */
    Duration;
    /** @type {number} */
    DurationTypeId;
    /** @type {?number} */
    MinDuration;
    /** @type {?number} */
    MaxDuration;
    /** @type {?number} */
    DurationInterval;
    /** @type {?number} */
    TotalSpots;
    /** @type {string} */
    ImageUrl;
    /** @type {number} */
    ScheduleTypeId;
    /** @type {string} */
    UpdatedDate;
    /** @type {string} */
    CreatedDate;
    /** @type {boolean} */
    OnlyVisibleByAdmin;
    /** @type {number} */
    MinNumberOfSpotsPerBooking;
    /** @type {number} */
    MaxNumberOfSpotsPerBooking;
    /** @type {number} */
    MinNumberOfResourcesToBook;
    /** @type {number} */
    MaxNumberOfResourcesToBook;
    /** @type {boolean} */
    IsPaymentEnabled;
    /** @type {number} */
    MaxPaymentTime;
    /** @type {boolean} */
    LockSpotsToBooking;
    /** @type {boolean} */
    EnableBookingQueue;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    BookingStatusId;
    /** @type {boolean} */
    EnableCodeLockSync;
    /** @type {boolean} */
    EnableCustomerManualPayment;
    /** @type {?number} */
    PriceViewTypeId;
    /** @type {string} */
    TextField1;
    /** @type {string} */
    TextField2;
    /** @type {string} */
    TextField3;
    /** @type {string} */
    TextField4;
    /** @type {string} */
    TextField5;
    /** @type {string} */
    TextField6;
    /** @type {string} */
    TextField7;
    /** @type {string} */
    TextField8;
    /** @type {string} */
    TextField9;
    /** @type {string} */
    TextField10;
    /** @type {string} */
    TextField11;
    /** @type {string} */
    TextField12;
    /** @type {string} */
    TextField13;
    /** @type {string} */
    TextField14;
    /** @type {string} */
    TextField15;
    /** @type {string} */
    TextField16;
    /** @type {string} */
    TextField17;
    /** @type {string} */
    TextField18;
    /** @type {string} */
    TextField19;
    /** @type {string} */
    TextField20;
}
export class CustomFieldServiceRelation extends BaseModel {
    /** @param {{CompanyId?:string,Id?:number,CustomFieldConfigId?:number,ServiceId?:number,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    Id;
    /** @type {number} */
    CustomFieldConfigId;
    /** @type {number} */
    ServiceId;
    /** @type {?string} */
    ModifiedDate;
}
export class CustomFieldConfig extends BaseModel {
    /** @param {{Values?:CustomFieldValue[],CustomField?:CustomField,RegEx?:RegEx,Services?:Service[],CustomFieldServiceRelation?:CustomFieldServiceRelation[],CompanyId?:string,Id?:number,GroupId?:number,FieldId?:number,IconId?:number,RegExId?:number,Name?:string,Description?:string,Datatype?:string,MaxLength?:number,IsPublic?:boolean,IsHidden?:boolean,IsMandatory?:boolean,DefaultValue?:string,RegExErrorMessage?:string,MandatoryErrorMessage?:string,Width?:number,MultipleLineText?:boolean,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {CustomFieldValue[]} */
    Values;
    /** @type {CustomField} */
    CustomField;
    /** @type {RegEx} */
    RegEx;
    /** @type {Service[]} */
    Services;
    /** @type {CustomFieldServiceRelation[]} */
    CustomFieldServiceRelation;
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    Id;
    /** @type {?number} */
    GroupId;
    /** @type {number} */
    FieldId;
    /** @type {number} */
    IconId;
    /** @type {?number} */
    RegExId;
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {string} */
    Datatype;
    /** @type {number} */
    MaxLength;
    /** @type {boolean} */
    IsPublic;
    /** @type {boolean} */
    IsHidden;
    /** @type {boolean} */
    IsMandatory;
    /** @type {string} */
    DefaultValue;
    /** @type {string} */
    RegExErrorMessage;
    /** @type {string} */
    MandatoryErrorMessage;
    /** @type {?number} */
    Width;
    /** @type {boolean} */
    MultipleLineText;
    /** @type {?string} */
    ModifiedDate;
}
export class CompanyType extends BaseModel {
    /** @param {{Name?:string,Description?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class CodeLockSystem extends BaseModel {
    /** @param {{Name?:string,Supplier?:string,LogoType?:string,Description?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Supplier;
    /** @type {string} */
    LogoType;
    /** @type {string} */
    Description;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class CodeLockSetting extends BaseModel {
    /** @param {{CodeLockSystemOptions?:CodeLockSystem[],Active?:boolean,CodeLockSystemsId?:number,ValidBeforeMinutes?:number,ValidAfterMinutes?:number,DeleteOldBySchedule?:boolean,Created?:string,Updated?:string,ModifiedDate?:string,SendEmailNotification?:boolean,SendSMSNotification?:boolean,EmailNotificationTime?:number,SMSNotificationTime?:number,Id?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {CodeLockSystem[]} */
    CodeLockSystemOptions;
    /** @type {boolean} */
    Active;
    /** @type {number} */
    CodeLockSystemsId;
    /** @type {number} */
    ValidBeforeMinutes;
    /** @type {number} */
    ValidAfterMinutes;
    /** @type {boolean} */
    DeleteOldBySchedule;
    /** @type {string} */
    Created;
    /** @type {string} */
    Updated;
    /** @type {?string} */
    ModifiedDate;
    /** @type {boolean} */
    SendEmailNotification;
    /** @type {boolean} */
    SendSMSNotification;
    /** @type {number} */
    EmailNotificationTime;
    /** @type {number} */
    SMSNotificationTime;
    /** @type {string} */
    Id;
}
export class LanguageResponse {
    /** @param {{Id?:string,Name?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    Id;
    /** @type {string} */
    Name;
}
export class CompanySetting extends BaseModel {
    /** @param {{Languages?:LanguageResponse[],Active?:boolean,InactiveMessage?:string,Searchable?:boolean,GATrackingId?:string,FacebookPixelId?:string,MultiLanguage?:boolean,EnableAPITranslation?:boolean,DefaultLanguage?:string,ModifiedDate?:string,GTMTrackingId?:string,ShowOnMarketPlace?:boolean,GoogleAdsConversionId?:string,LinkedinTagId?:string,GoogleAdsConversionLabel?:string,SendCustomerInformationToExternalProviders?:boolean,Id?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {LanguageResponse[]} */
    Languages;
    /** @type {boolean} */
    Active;
    /** @type {string} */
    InactiveMessage;
    /** @type {boolean} */
    Searchable;
    /** @type {string} */
    GATrackingId;
    /** @type {string} */
    FacebookPixelId;
    /** @type {boolean} */
    MultiLanguage;
    /** @type {boolean} */
    EnableAPITranslation;
    /** @type {string} */
    DefaultLanguage;
    /** @type {?string} */
    ModifiedDate;
    /** @type {string} */
    GTMTrackingId;
    /** @type {boolean} */
    ShowOnMarketPlace;
    /** @type {string} */
    GoogleAdsConversionId;
    /** @type {string} */
    LinkedinTagId;
    /** @type {string} */
    GoogleAdsConversionLabel;
    /** @type {boolean} */
    SendCustomerInformationToExternalProviders;
    /** @type {string} */
    Id;
}
export class WidgetServiceLayouts extends BaseModel {
    /** @param {{Name?:string,Description?:string,Code?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {string} */
    Code;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class WidgetTimeLayouts extends BaseModel {
    /** @param {{Name?:string,Description?:string,Code?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {string} */
    Code;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class WidgetBookingLayouts extends BaseModel {
    /** @param {{Name?:string,Description?:string,Code?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {string} */
    Code;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class WidgetBookingMethods extends BaseModel {
    /** @param {{Name?:string,Description?:string,Code?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {string} */
    Code;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class HomepageWidgetSetting extends BaseModel {
    /** @param {{WidgetServiceLayoutOptions?:WidgetServiceLayouts[],WidgetTimeLayoutOptions?:WidgetTimeLayouts[],WidgetBookingLayoutOptions?:WidgetBookingLayouts[],WidgetBookingMethodOptions?:WidgetBookingMethods[],ServiceLayoutId?:number,TimeLayoutId?:number,BookingLayoutId?:number,PrimaryColor?:string,ShowServiceImage?:boolean,ShowNextAvailableTime?:boolean,ShowEndTime?:boolean,BookedTimeSlotText?:string,DarkTheme?:boolean,ShowRebateCodeField?:boolean,ModifiedDate?:string,EnableCreateAccount?:boolean,EnableLogin?:boolean,EnableDirectBooking?:boolean,EnableFacebookLogin?:boolean,ShowSubscribeToNewsletter?:boolean,Id?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {WidgetServiceLayouts[]} */
    WidgetServiceLayoutOptions;
    /** @type {WidgetTimeLayouts[]} */
    WidgetTimeLayoutOptions;
    /** @type {WidgetBookingLayouts[]} */
    WidgetBookingLayoutOptions;
    /** @type {WidgetBookingMethods[]} */
    WidgetBookingMethodOptions;
    /** @type {number} */
    ServiceLayoutId;
    /** @type {number} */
    TimeLayoutId;
    /** @type {number} */
    BookingLayoutId;
    /** @type {string} */
    PrimaryColor;
    /** @type {boolean} */
    ShowServiceImage;
    /** @type {boolean} */
    ShowNextAvailableTime;
    /** @type {boolean} */
    ShowEndTime;
    /** @type {string} */
    BookedTimeSlotText;
    /** @type {boolean} */
    DarkTheme;
    /** @type {boolean} */
    ShowRebateCodeField;
    /** @type {?string} */
    ModifiedDate;
    /** @type {boolean} */
    EnableCreateAccount;
    /** @type {boolean} */
    EnableLogin;
    /** @type {boolean} */
    EnableDirectBooking;
    /** @type {boolean} */
    EnableFacebookLogin;
    /** @type {boolean} */
    ShowSubscribeToNewsletter;
    /** @type {string} */
    Id;
}
export class HomepageTemplate extends BaseModel {
    /** @param {{Name?:string,Description?:string,ImageUrl?:string,Premium?:boolean,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {string} */
    ImageUrl;
    /** @type {boolean} */
    Premium;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class HeroSectionStyle extends BaseModel {
    /** @param {{Name?:string,Description?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class HomepageSetting extends BaseModel {
    /** @param {{HomepageTemplateOptions?:HomepageTemplate[],HomepageHeroSectionStyleOptions?:HeroSectionStyle[],CompanyId?:string,WelcomePageHeading?:string,WelcomePageBody?:string,AboutUsPageHeading?:string,AboutUsPageBody?:string,HomePageTemplateId?:number,ImageUrl?:string,Updated?:string,Created?:string,HomepageHeading?:string,HeroSectionStyleId?:number,ModifiedDate?:string,ShowRating?:boolean,EnableHomepage?:boolean,Id?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {HomepageTemplate[]} */
    HomepageTemplateOptions;
    /** @type {HeroSectionStyle[]} */
    HomepageHeroSectionStyleOptions;
    /** @type {?string} */
    CompanyId;
    /** @type {string} */
    WelcomePageHeading;
    /** @type {string} */
    WelcomePageBody;
    /** @type {string} */
    AboutUsPageHeading;
    /** @type {string} */
    AboutUsPageBody;
    /** @type {number} */
    HomePageTemplateId;
    /** @type {string} */
    ImageUrl;
    /** @type {string} */
    Updated;
    /** @type {string} */
    Created;
    /** @type {string} */
    HomepageHeading;
    /** @type {number} */
    HeroSectionStyleId;
    /** @type {?string} */
    ModifiedDate;
    /** @type {boolean} */
    ShowRating;
    /** @type {boolean} */
    EnableHomepage;
    /** @type {string} */
    Id;
}
export class LicenseTypeItem extends BaseModel {
    /** @param {{Name?:string,LicenseType?:LicenseType,LicenseTypesId?:number,LicenseItemsId?:number,NumberOfItems?:number,Id?:number,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {LicenseType} */
    LicenseType;
    /** @type {number} */
    LicenseTypesId;
    /** @type {number} */
    LicenseItemsId;
    /** @type {number} */
    NumberOfItems;
    /** @type {number} */
    Id;
    /** @type {?string} */
    ModifiedDate;
}
export class Country extends BaseModel {
    /** @param {{CurrencyId?:string,CurrencyInfo?:Currency,Name?:string,Culture?:string,TimeZone?:string,ModifiedDate?:string,Id?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CurrencyId;
    /** @type {Currency} */
    CurrencyInfo;
    /** @type {string} */
    Name;
    /** @type {string} */
    Culture;
    /** @type {string} */
    TimeZone;
    /** @type {?string} */
    ModifiedDate;
    /** @type {string} */
    Id;
}
export class LicensePrice extends BaseModel {
    /** @param {{Country?:Country,MonthlyPayment?:boolean,LicenseTypeId?:number,CountryId?:string,Price?:number,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {Country} */
    Country;
    /** @type {boolean} */
    MonthlyPayment;
    /** @type {number} */
    LicenseTypeId;
    /** @type {string} */
    CountryId;
    /** @type {number} */
    Price;
    /** @type {?string} */
    ModifiedDate;
}
export class LicenseType extends BaseModel {
    /** @param {{LicenseItems?:IList<LicenseTypeItem>,Prices?:IList<LicensePrice>,PeriodOfNoticeDays?:number,NextLicenseOption?:LicenseType,Name?:string,Description?:string,ExtraLicenseOption?:boolean,ModifiedDate?:string,Active?:boolean,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {IList<LicenseTypeItem>} */
    LicenseItems;
    /** @type {IList<LicensePrice>} */
    Prices;
    /** @type {number} */
    PeriodOfNoticeDays;
    /** @type {LicenseType} */
    NextLicenseOption;
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {boolean} */
    ExtraLicenseOption;
    /** @type {?string} */
    ModifiedDate;
    /** @type {boolean} */
    Active;
    /** @type {number} */
    Id;
}
export class License extends BaseModel {
    /** @param {{Type?:LicenseType,CompanyId?:string,Id?:number,TypeId?:number,ValidFrom?:string,ValidTo?:string,Active?:boolean,Updated?:string,Created?:string,ModifiedDate?:string,MetaData?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {LicenseType} */
    Type;
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    Id;
    /** @type {number} */
    TypeId;
    /** @type {string} */
    ValidFrom;
    /** @type {string} */
    ValidTo;
    /** @type {boolean} */
    Active;
    /** @type {string} */
    Updated;
    /** @type {string} */
    Created;
    /** @type {?string} */
    ModifiedDate;
    /** @type {string} */
    MetaData;
}
export class CompanyCategory extends BaseModel {
    /** @param {{Name?:string,Header?:string,Description?:string,ImageUrl?:string,Active?:boolean,SortOrder?:number,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Header;
    /** @type {string} */
    Description;
    /** @type {string} */
    ImageUrl;
    /** @type {boolean} */
    Active;
    /** @type {?number} */
    SortOrder;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class Company extends BaseModel {
    /** @param {{Status?:CompanyStatus,Active?:boolean,CustomerCustomFieldsConfig?:IList<CustomFieldConfig>,BookingAgreements?:string,BookingSettings?:BookingSettings,CompanyType?:CompanyType,CodeLockSettings?:CodeLockSetting,PaymentSettings?:PaymentSetting,Settings?:CompanySetting,WidgetSettings?:HomepageWidgetSetting,HomepageSettings?:HomepageSetting,RatingScore?:AverageRatingScore,Ratings?:Rating[],Distance?:number,Licenses?:License[],ActiveLicenses?:License[],CurrentLicense?:License,IsFreeAccount?:boolean,DefaultLanguage?:CultureInfo,Category?:CompanyCategory,Lat?:number,Lon?:number,IsFavorite?:boolean,ExternalReferences?:IList<ExternalReference>,OrganisationNumber?:string,StatusId?:number,CategoryId?:number,SitePath?:string,Name?:string,Street1?:string,Street2?:string,ZipCode?:string,City?:string,OpeningHours?:string,FaxNumber?:string,Email?:string,Phone?:string,Details?:string,LogoType?:string,ApprovedByAdmin?:boolean,Updated?:string,Created?:string,IpAddress?:string,Homepage?:string,DomainName?:string,CountryId?:string,CompanyOwnerId?:number,TypeId?:number,ModifiedDate?:string,Id?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {CompanyStatus} */
    Status;
    /** @type {boolean} */
    Active;
    /** @type {IList<CustomFieldConfig>} */
    CustomerCustomFieldsConfig;
    /** @type {string} */
    BookingAgreements;
    /** @type {BookingSettings} */
    BookingSettings;
    /** @type {CompanyType} */
    CompanyType;
    /** @type {CodeLockSetting} */
    CodeLockSettings;
    /** @type {PaymentSetting} */
    PaymentSettings;
    /** @type {CompanySetting} */
    Settings;
    /** @type {HomepageWidgetSetting} */
    WidgetSettings;
    /** @type {HomepageSetting} */
    HomepageSettings;
    /** @type {AverageRatingScore} */
    RatingScore;
    /** @type {Rating[]} */
    Ratings;
    /** @type {?number} */
    Distance;
    /** @type {License[]} */
    Licenses;
    /** @type {License[]} */
    ActiveLicenses;
    /** @type {License} */
    CurrentLicense;
    /** @type {boolean} */
    IsFreeAccount;
    /** @type {CultureInfo} */
    DefaultLanguage;
    /** @type {CompanyCategory} */
    Category;
    /** @type {number} */
    Lat;
    /** @type {number} */
    Lon;
    /** @type {boolean} */
    IsFavorite;
    /** @type {IList<ExternalReference>} */
    ExternalReferences;
    /** @type {string} */
    OrganisationNumber;
    /** @type {number} */
    StatusId;
    /** @type {number} */
    CategoryId;
    /** @type {string} */
    SitePath;
    /** @type {string} */
    Name;
    /** @type {string} */
    Street1;
    /** @type {string} */
    Street2;
    /** @type {string} */
    ZipCode;
    /** @type {string} */
    City;
    /** @type {string} */
    OpeningHours;
    /** @type {string} */
    FaxNumber;
    /** @type {string} */
    Email;
    /** @type {string} */
    Phone;
    /** @type {string} */
    Details;
    /** @type {string} */
    LogoType;
    /** @type {boolean} */
    ApprovedByAdmin;
    /** @type {string} */
    Updated;
    /** @type {string} */
    Created;
    /** @type {string} */
    IpAddress;
    /** @type {string} */
    Homepage;
    /** @type {string} */
    DomainName;
    /** @type {string} */
    CountryId;
    /** @type {number} */
    CompanyOwnerId;
    /** @type {?number} */
    TypeId;
    /** @type {?string} */
    ModifiedDate;
    /** @type {string} */
    Id;
}
export class CustomerComment extends BaseModel {
    /** @param {{CompanyId?:string,Id?:number,CustomerId?:string,Comments?:string,Updated?:string,Created?:string,ImageUrl?:string,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    Id;
    /** @type {string} */
    CustomerId;
    /** @type {string} */
    Comments;
    /** @type {string} */
    Updated;
    /** @type {string} */
    Created;
    /** @type {string} */
    ImageUrl;
    /** @type {?string} */
    ModifiedDate;
}
export class Customer extends BaseModel {
    /** @param {{IdentityId?:number,Id?:string,CustomerId?:string,AccessKeys?:IList<UserAccessKeys>,Email?:string,ExternalReferences?:IList<ExternalReference>,Company?:Company,CustomFieldsConfig?:IList<CustomFieldConfig>,CustomFieldsData?:IList<CustomFieldDataResponse>,Comments?:IList<CustomerComment>,RebateCodes?:IList<RebateCode>,Firstname?:string,ImageUrl?:string,Active?:boolean,FacebookUsername?:string,Updated?:string,Created?:string,IpAddress?:string,ModifiedDate?:string,TextField1?:string,TextField2?:string,TextField3?:string,TextField4?:string,TextField5?:string,TextField6?:string,TextField7?:string,TextField8?:string,TextField9?:string,TextField10?:string,TextField11?:string,TextField12?:string,TextField13?:string,TextField14?:string,TextField15?:string,TextField16?:string,TextField17?:string,TextField18?:string,TextField19?:string,TextField20?:string,UserId?:string,Lastname?:string,Phone?:string,CorporateIdentityNumber?:string,InvoiceAddress1?:string,InvoiceAddress2?:string,InvoiceCity?:string,InvoicePostalCode?:string,InvoiceCountryCode?:string,CompanyId?:string,SubscribedToNewsletter?:boolean}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {number} */
    IdentityId;
    /** @type {string} */
    Id;
    /** @type {string} */
    CustomerId;
    /** @type {IList<UserAccessKeys>} */
    AccessKeys;
    /** @type {string} */
    Email;
    /** @type {IList<ExternalReference>} */
    ExternalReferences;
    /** @type {Company} */
    Company;
    /** @type {IList<CustomFieldConfig>} */
    CustomFieldsConfig;
    /** @type {IList<CustomFieldDataResponse>} */
    CustomFieldsData;
    /** @type {IList<CustomerComment>} */
    Comments;
    /** @type {IList<RebateCode>} */
    RebateCodes;
    /** @type {string} */
    Firstname;
    /** @type {string} */
    ImageUrl;
    /** @type {boolean} */
    Active;
    /** @type {string} */
    FacebookUsername;
    /** @type {string} */
    Updated;
    /** @type {string} */
    Created;
    /** @type {string} */
    IpAddress;
    /** @type {?string} */
    ModifiedDate;
    /** @type {string} */
    TextField1;
    /** @type {string} */
    TextField2;
    /** @type {string} */
    TextField3;
    /** @type {string} */
    TextField4;
    /** @type {string} */
    TextField5;
    /** @type {string} */
    TextField6;
    /** @type {string} */
    TextField7;
    /** @type {string} */
    TextField8;
    /** @type {string} */
    TextField9;
    /** @type {string} */
    TextField10;
    /** @type {string} */
    TextField11;
    /** @type {string} */
    TextField12;
    /** @type {string} */
    TextField13;
    /** @type {string} */
    TextField14;
    /** @type {string} */
    TextField15;
    /** @type {string} */
    TextField16;
    /** @type {string} */
    TextField17;
    /** @type {string} */
    TextField18;
    /** @type {string} */
    TextField19;
    /** @type {string} */
    TextField20;
    /** @type {string} */
    UserId;
    /** @type {string} */
    Lastname;
    /** @type {string} */
    Phone;
    /** @type {string} */
    CorporateIdentityNumber;
    /** @type {string} */
    InvoiceAddress1;
    /** @type {string} */
    InvoiceAddress2;
    /** @type {string} */
    InvoiceCity;
    /** @type {string} */
    InvoicePostalCode;
    /** @type {string} */
    InvoiceCountryCode;
    /** @type {string} */
    CompanyId;
    /** @type {boolean} */
    SubscribedToNewsletter;
}
/** @typedef {'Physical'|'Service'|'Fee'|'Discount'} */
export var ItemType;
(function (ItemType) {
    ItemType["Physical"] = "Physical"
    ItemType["Service"] = "Service"
    ItemType["Fee"] = "Fee"
    ItemType["Discount"] = "Discount"
})(ItemType || (ItemType = {}));
export class Item {
    /** @param {{ItemId?:string,DiscountRate?:number,Ean?:string,ImageUri?:string,Name?:string,Quantity?:number,Reference?:string,TaxRate?:number,TotalPriceExcludingTax?:number,TotalPriceIncludingTax?:number,TotalTaxAmount?:number,CreditedAmount?:number,Type?:ItemType,UnitPrice?:number,Uri?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    ItemId;
    /** @type {number} */
    DiscountRate;
    /** @type {string} */
    Ean;
    /** @type {string} */
    ImageUri;
    /** @type {string} */
    Name;
    /** @type {number} */
    Quantity;
    /** @type {string} */
    Reference;
    /** @type {number} */
    TaxRate;
    /** @type {number} */
    TotalPriceExcludingTax;
    /** @type {number} */
    TotalPriceIncludingTax;
    /** @type {number} */
    TotalTaxAmount;
    /** @type {number} */
    CreditedAmount;
    /** @type {ItemType} */
    Type;
    /** @type {number} */
    UnitPrice;
    /** @type {string} */
    Uri;
}
export class Order {
    /** @param {{Currency?:Currency,TotalFeeExcludingTax?:number,TotalFeeIncludingTax?:number,TotalPriceExcludingTax?:number,TotalPriceIncludingTax?:number,TotalTaxAmount?:number,TotalCreditedAmount?:number,Items?:IList<Item>}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {Currency} */
    Currency;
    /** @type {number} */
    TotalFeeExcludingTax;
    /** @type {number} */
    TotalFeeIncludingTax;
    /** @type {number} */
    TotalPriceExcludingTax;
    /** @type {number} */
    TotalPriceIncludingTax;
    /** @type {number} */
    TotalTaxAmount;
    /** @type {number} */
    TotalCreditedAmount;
    /** @type {IList<Item>} */
    Items;
}
export class Merchant {
    /** @param {{CheckoutUri?:string,ConfirmationUri?:string,NotificationUri?:string,ValidationUri?:string,TermsUri?:string,Reference?:string,PartnerId?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    CheckoutUri;
    /** @type {string} */
    ConfirmationUri;
    /** @type {string} */
    NotificationUri;
    /** @type {string} */
    ValidationUri;
    /** @type {string} */
    TermsUri;
    /** @type {string} */
    Reference;
    /** @type {string} */
    PartnerId;
}
/** @typedef {'White'|'Blue'|'Gray'|'GrayTextLogos'|'BlueTextLogos'|'WhiteTextLogos'|'WhiteNoFooter'|'GrayNoFooter'|'BlueNoFooter'} */
export var ColorScheme;
(function (ColorScheme) {
    ColorScheme["White"] = "White"
    ColorScheme["Blue"] = "Blue"
    ColorScheme["Gray"] = "Gray"
    ColorScheme["GrayTextLogos"] = "GrayTextLogos"
    ColorScheme["BlueTextLogos"] = "BlueTextLogos"
    ColorScheme["WhiteTextLogos"] = "WhiteTextLogos"
    ColorScheme["WhiteNoFooter"] = "WhiteNoFooter"
    ColorScheme["GrayNoFooter"] = "GrayNoFooter"
    ColorScheme["BlueNoFooter"] = "BlueNoFooter"
})(ColorScheme || (ColorScheme = {}));
export class Gui {
    /** @param {{ColorScheme?:ColorScheme,Locale?:string,RequestPhone?:boolean,PhoneOptional?:boolean}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {ColorScheme} */
    ColorScheme;
    /** @type {string} */
    Locale;
    /** @type {boolean} */
    RequestPhone;
    /** @type {boolean} */
    PhoneOptional;
}
export class History {
    /** @param {{Created?:string,ReadyToPay?:string,ReadyToShip?:string,Shipped?:string,PaidToAccount?:string,Canceled?:string,Expired?:string,Denied?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {?string} */
    Created;
    /** @type {?string} */
    ReadyToPay;
    /** @type {?string} */
    ReadyToShip;
    /** @type {?string} */
    Shipped;
    /** @type {?string} */
    PaidToAccount;
    /** @type {?string} */
    Canceled;
    /** @type {?string} */
    Expired;
    /** @type {?string} */
    Denied;
}
export class Payson2CheckoutResponse {
    /** @param {{Id?:string,ExpirationTime?:string,Snippet?:string,Status?:Payson2CheckoutStatus,Customer?:Customer,Order?:Order,Merchant?:Merchant,Gui?:Gui,History?:History,PurchaseId?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    Id;
    /** @type {?string} */
    ExpirationTime;
    /** @type {string} */
    Snippet;
    /** @type {Payson2CheckoutStatus} */
    Status;
    /** @type {Customer} */
    Customer;
    /** @type {Order} */
    Order;
    /** @type {Merchant} */
    Merchant;
    /** @type {Gui} */
    Gui;
    /** @type {History} */
    History;
    /** @type {?number} */
    PurchaseId;
}
export class PaymentLog extends BaseModel {
    /** @param {{CurrencyId?:string,CurrencyInfo?:Currency,CompanyId?:string,Id?:number,InternalReferenceId?:string,ArticleTypeId?:number,PaymentReferenceId?:string,PaymentProviderId?:number,OrderItemReferenceId?:string,Amount?:number,VAT?:number,AmountCredited?:number,Comments?:string,Created?:string,Updated?:string,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CurrencyId;
    /** @type {Currency} */
    CurrencyInfo;
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    Id;
    /** @type {string} */
    InternalReferenceId;
    /** @type {number} */
    ArticleTypeId;
    /** @type {string} */
    PaymentReferenceId;
    /** @type {?number} */
    PaymentProviderId;
    /** @type {string} */
    OrderItemReferenceId;
    /** @type {?number} */
    Amount;
    /** @type {?number} */
    VAT;
    /** @type {?number} */
    AmountCredited;
    /** @type {string} */
    Comments;
    /** @type {string} */
    Created;
    /** @type {string} */
    Updated;
    /** @type {?string} */
    ModifiedDate;
}
export class PayableEntity extends BaseModel {
    /** @param {{DbFactory?:IDbConnectionFactory,QvicklyPaymentManager?:IBokameraPaymentManager<InitCheckoutRequestBody, QvicklyCheckoutResponse, QvicklyPaymentResponse>,Payson2PaymentManager?:IBokameraPaymentManager<Payson2CheckoutResponse, Payson2CheckoutResponse, Payson2CheckoutResponse>,PaysonPaymentCheckout1?:IPaysonPaymentCheckout1,Logger?:ILogger<PayableEntity>,InternalReferenceId?:string,PaymentLog?:PaymentLog[],CompanyId?:string,PriceVat?:number,CurrencyId?:string,Customer?:Customer,Customers?:Customer[],Company?:Company}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {IDbConnectionFactory} */
    DbFactory;
    /** @type {IBokameraPaymentManager<InitCheckoutRequestBody, QvicklyCheckoutResponse, QvicklyPaymentResponse>} */
    QvicklyPaymentManager;
    /** @type {IBokameraPaymentManager<Payson2CheckoutResponse, Payson2CheckoutResponse, Payson2CheckoutResponse>} */
    Payson2PaymentManager;
    /** @type {IPaysonPaymentCheckout1} */
    PaysonPaymentCheckout1;
    /** @type {ILogger<PayableEntity>} */
    Logger;
    /** @type {string} */
    InternalReferenceId;
    /** @type {PaymentLog[]} */
    PaymentLog;
    /** @type {string} */
    CompanyId;
    /** @type {?number} */
    PriceVat;
    /** @type {string} */
    CurrencyId;
    /** @type {Customer} */
    Customer;
    /** @type {Customer[]} */
    Customers;
    /** @type {Company} */
    Company;
}
export class CalendarExport extends BaseModel {
    /** @param {{CompanyId?:string,BookingId?:number,ExceptionId?:number,CalendarSync?:boolean,CalendarId?:string,IsExceptionDeleted?:boolean,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    BookingId;
    /** @type {number} */
    ExceptionId;
    /** @type {?boolean} */
    CalendarSync;
    /** @type {string} */
    CalendarId;
    /** @type {?boolean} */
    IsExceptionDeleted;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class BookingLogEventType extends BaseModel {
    /** @param {{Name?:string,Description?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class BookingLog extends BaseModel {
    /** @param {{EventTypeId?:number,EventType?:BookingLogEventType,CompanyId?:string,BookingId?:number,Id?:number,Comments?:string,UserId?:string,Created?:string,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {number} */
    EventTypeId;
    /** @type {BookingLogEventType} */
    EventType;
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    BookingId;
    /** @type {number} */
    Id;
    /** @type {string} */
    Comments;
    /** @type {string} */
    UserId;
    /** @type {string} */
    Created;
    /** @type {?string} */
    ModifiedDate;
}
export class PaymentDetails extends BaseModel {
    /** @param {{QvicklyCheckoutSerialized?:QvicklyCheckoutResponse,Payson2CheckoutSerialized?:Payson2CheckoutResponse,CompanyId?:string,InternalReferenceId?:string,ArticleTypeId?:number,ExternalResponseData?:string,ExternalResponseReference?:string,PaymentProviderId?:number,CreatedDate?:string,UpdatedDate?:string,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {QvicklyCheckoutResponse} */
    QvicklyCheckoutSerialized;
    /** @type {Payson2CheckoutResponse} */
    Payson2CheckoutSerialized;
    /** @type {string} */
    CompanyId;
    /** @type {string} */
    InternalReferenceId;
    /** @type {number} */
    ArticleTypeId;
    /** @type {string} */
    ExternalResponseData;
    /** @type {string} */
    ExternalResponseReference;
    /** @type {number} */
    PaymentProviderId;
    /** @type {string} */
    CreatedDate;
    /** @type {string} */
    UpdatedDate;
    /** @type {?string} */
    ModifiedDate;
}
export class BookingPrice extends BaseModel {
    /** @param {{CurrencyId?:string,PriceId?:number,CurrencyInfo?:Currency,PriceText?:string,AppliedCodes?:AppliedRebateCodes[],IsRebate?:boolean,CompanyId?:string,BookingId?:number,Quantity?:number,Price?:number,VAT?:number,Category?:string,Updated?:string,Created?:string,Invoiced?:boolean,OccupiesSpot?:boolean,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CurrencyId;
    /** @type {?number} */
    PriceId;
    /** @type {Currency} */
    CurrencyInfo;
    /** @type {string} */
    PriceText;
    /** @type {AppliedRebateCodes[]} */
    AppliedCodes;
    /** @type {boolean} */
    IsRebate;
    /** @type {string} */
    CompanyId;
    /** @type {number} */
    BookingId;
    /** @type {number} */
    Quantity;
    /** @type {?number} */
    Price;
    /** @type {?number} */
    VAT;
    /** @type {string} */
    Category;
    /** @type {string} */
    Updated;
    /** @type {string} */
    Created;
    /** @type {boolean} */
    Invoiced;
    /** @type {boolean} */
    OccupiesSpot;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class BookingStatus extends BaseModel {
    /** @param {{Name?:string,Description?:string,Color?:string,Icon?:string,ModifiedDate?:string,Id?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {string} */
    Color;
    /** @type {string} */
    Icon;
    /** @type {?string} */
    ModifiedDate;
    /** @type {number} */
    Id;
}
export class Booking extends PayableEntity {
    /** @param {{Service?:Service,CalendarExport?:CalendarExport,Log?:BookingLog[],CheckoutLogs?:PaymentDetails[],Prices?:BookingPrice[],Status?:BookingStatusEnum,IsReserved?:boolean,StatusName?:string,CurrencyInfo?:Currency,BookingStatus?:BookingStatus,TotalPrice?:number,TotalSpots?:number,Resources?:IList<Resource>,ExternalReferences?:IList<ExternalReference>,BookedResources?:IList<BookedResourceType>,CustomFieldsConfig?:IList<CustomFieldConfig>,CustomFieldsData?:IList<CustomFieldDataResponse>,DeterministicId?:string,Active?:boolean,LastTimeToUnBook?:string,PriceMappings?:PriceMapping[],InternalReferenceId?:string,UpdatedDate?:string,CreatedDate?:string,Id?:number,CustomerId?:string,ServiceId?:number,StatusId?:number,UnbookedOn?:string,UnbookedComments?:string,BookedComments?:string,BookedBy?:string,UnBookedBy?:string,SendSmsReminder?:boolean,SendEmailReminder?:boolean,SendSmsConfirmation?:boolean,RebateCode?:string,Comments?:string,IpAddress?:string,NumberOfBookedSpots?:number,CommentsToCustomer?:string,PaymentExpiration?:string,SendEmailConfirmation?:boolean,CancellationCode?:string,ModifiedDate?:string,RatingCode?:string,TextField1?:string,TextField2?:string,TextField3?:string,TextField4?:string,TextField5?:string,TextField6?:string,TextField7?:string,TextField8?:string,TextField9?:string,TextField10?:string,TextField11?:string,TextField12?:string,TextField13?:string,TextField14?:string,TextField15?:string,TextField16?:string,TextField17?:string,TextField18?:string,TextField19?:string,TextField20?:string,From?:string,To?:string,DbFactory?:IDbConnectionFactory,QvicklyPaymentManager?:IBokameraPaymentManager<InitCheckoutRequestBody, QvicklyCheckoutResponse, QvicklyPaymentResponse>,Payson2PaymentManager?:IBokameraPaymentManager<Payson2CheckoutResponse, Payson2CheckoutResponse, Payson2CheckoutResponse>,PaysonPaymentCheckout1?:IPaysonPaymentCheckout1,Logger?:ILogger<PayableEntity>,InternalReferenceId?:string,PaymentLog?:PaymentLog[],CompanyId?:string,PriceVat?:number,CurrencyId?:string,Customer?:Customer,Customers?:Customer[],Company?:Company}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {Service} */
    Service;
    /** @type {CalendarExport} */
    CalendarExport;
    /** @type {BookingLog[]} */
    Log;
    /** @type {PaymentDetails[]} */
    CheckoutLogs;
    /** @type {BookingPrice[]} */
    Prices;
    /** @type {BookingStatusEnum} */
    Status;
    /** @type {boolean} */
    IsReserved;
    /** @type {string} */
    StatusName;
    /** @type {Currency} */
    CurrencyInfo;
    /** @type {BookingStatus} */
    BookingStatus;
    /** @type {?number} */
    TotalPrice;
    /** @type {?number} */
    TotalSpots;
    /** @type {IList<Resource>} */
    Resources;
    /** @type {IList<ExternalReference>} */
    ExternalReferences;
    /** @type {IList<BookedResourceType>} */
    BookedResources;
    /** @type {IList<CustomFieldConfig>} */
    CustomFieldsConfig;
    /** @type {IList<CustomFieldDataResponse>} */
    CustomFieldsData;
    /** @type {string} */
    DeterministicId;
    /** @type {boolean} */
    Active;
    /** @type {?string} */
    LastTimeToUnBook;
    /** @type {PriceMapping[]} */
    PriceMappings;
    /** @type {string} */
    InternalReferenceId;
    /** @type {string} */
    UpdatedDate;
    /** @type {string} */
    CreatedDate;
    /** @type {number} */
    Id;
    /** @type {string} */
    CustomerId;
    /** @type {number} */
    ServiceId;
    /** @type {number} */
    StatusId;
    /** @type {?string} */
    UnbookedOn;
    /** @type {string} */
    UnbookedComments;
    /** @type {string} */
    BookedComments;
    /** @type {string} */
    BookedBy;
    /** @type {string} */
    UnBookedBy;
    /** @type {boolean} */
    SendSmsReminder;
    /** @type {boolean} */
    SendEmailReminder;
    /** @type {boolean} */
    SendSmsConfirmation;
    /** @type {string} */
    RebateCode;
    /** @type {string} */
    Comments;
    /** @type {string} */
    IpAddress;
    /** @type {number} */
    NumberOfBookedSpots;
    /** @type {string} */
    CommentsToCustomer;
    /** @type {?string} */
    PaymentExpiration;
    /** @type {boolean} */
    SendEmailConfirmation;
    /** @type {string} */
    CancellationCode;
    /** @type {?string} */
    ModifiedDate;
    /** @type {string} */
    RatingCode;
    /** @type {string} */
    TextField1;
    /** @type {string} */
    TextField2;
    /** @type {string} */
    TextField3;
    /** @type {string} */
    TextField4;
    /** @type {string} */
    TextField5;
    /** @type {string} */
    TextField6;
    /** @type {string} */
    TextField7;
    /** @type {string} */
    TextField8;
    /** @type {string} */
    TextField9;
    /** @type {string} */
    TextField10;
    /** @type {string} */
    TextField11;
    /** @type {string} */
    TextField12;
    /** @type {string} */
    TextField13;
    /** @type {string} */
    TextField14;
    /** @type {string} */
    TextField15;
    /** @type {string} */
    TextField16;
    /** @type {string} */
    TextField17;
    /** @type {string} */
    TextField18;
    /** @type {string} */
    TextField19;
    /** @type {string} */
    TextField20;
    /** @type {string} */
    From;
    /** @type {string} */
    To;
}
export class SuperAdminBookingQuery extends QueryDb {
    /** @param {{BookedResourceIds?:number[],BookedResourceTypeIds?:number[],CompanyId?:string,Id?:number,CancellationCode?:string,BookingStart?:string,BookingEnd?:string,CreatedFrom?:string,CreatedTo?:string,CompanyBookings?:boolean,ServiceIds?:number[],StatusIds?:number[],CustomerId?:string,IncludeCustomFields?:boolean,IncludeCustomFieldValues?:boolean,IncludeBookedResourceTypes?:boolean,IncludeCompanyInformation?:boolean,IncludeServiceInformation?:boolean,IncludeCustomerInformation?:boolean,IncludeLog?:boolean,IncludePaymentLog?:boolean,IncludeCheckoutLog?:boolean,IncludeQuantityInformation?:boolean,IncludeCalendarExportStatus?:boolean,IncludeStatusInformation?:boolean,MaxLimit?:number,ResponseStatus?:ResponseStatus,Skip?:number,Take?:number,OrderBy?:string,OrderByDesc?:string,Include?:string,Fields?:string,Meta?:{ [index: string]: string; }}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /**
     * @type {number[]}
     * @description Query for specific Booked Resources, default is all resources */
    BookedResourceIds;
    /**
     * @type {number[]}
     * @description Query for specific Booked Resource types, default is all resource types */
    BookedResourceTypeIds;
    /**
     * @type {?string}
     * @description The company id, if empty will use the company id for the user you are logged in with. */
    CompanyId;
    /**
     * @type {?number}
     * @description Id of the booking */
    Id;
    /**
     * @type {string}
     * @description The cancellation code of the booking, can be used if you want to get a booking without being authenticated */
    CancellationCode;
    /**
     * @type {?string}
     * @description Start of interval to query for bookings. UTC+0 and parameter as defined by date-time - RFC3339 */
    BookingStart;
    /**
     * @type {?string}
     * @description End of interval to query for bookings. UTC+0 and parameter as defined by date-time - RFC3339 */
    BookingEnd;
    /**
     * @type {?string}
     * @description Start of interval to query for bookings when they where created. UTC+0 and parameter as defined by date-time - RFC3339 */
    CreatedFrom;
    /**
     * @type {?string}
     * @description End of interval to query for bookings when they where created. UTC+0 and parameter as defined by date-time - RFC3339 */
    CreatedTo;
    /**
     * @type {boolean}
     * @description Set to true if you want to include the bookings for the company you are logged in as administrator on, if false only bookings for the logged in user will be retrieved. Only administrators are allowed to do this. */
    CompanyBookings;
    /**
     * @type {number[]}
     * @description Query for specific services. */
    ServiceIds;
    /**
     * @type {number[]}
     * @description Query for specific booking statuses. Valid statuses are TimeBooked = 1, TimeUnbooked = 2, TimeReserved = 3, TimeCanceled = 4, AwaitingPayment = 5, AwaitingPaymentNoTimeLimit = 6, BookedAndPayed = 7, 8 = AwaitingPaymentRequestFromAdmin, 9 = AwaitingPaymentFromProvider. Default is all. */
    StatusIds;
    /**
     * @type {?string}
     * @description Query for specific customer */
    CustomerId;
    /**
     * @type {boolean}
     * @description If you want to include the connected resource types and resources */
    IncludeCustomFields;
    /**
     * @type {boolean}
     * @description If you want to include the connected custom fields */
    IncludeCustomFieldValues;
    /**
     * @type {boolean}
     * @description If you want to include the booked resources */
    IncludeBookedResourceTypes;
    /**
     * @type {boolean}
     * @description If you want to include the company information for the booking */
    IncludeCompanyInformation;
    /**
     * @type {boolean}
     * @description If you want to include the service information for the booking */
    IncludeServiceInformation;
    /**
     * @type {boolean}
     * @description If you want to include the customer information for the booking */
    IncludeCustomerInformation;
    /**
     * @type {boolean}
     * @description If you want to include the log of all events on the booking */
    IncludeLog;
    /**
     * @type {boolean}
     * @description If you want to include the payment log on the booking */
    IncludePaymentLog;
    /**
     * @type {boolean}
     * @description If you want to include the checkouts for payson */
    IncludeCheckoutLog;
    /**
     * @type {boolean}
     * @description If you want to include the quantity and price information on the booking */
    IncludeQuantityInformation;
    /**
     * @type {boolean}
     * @description If you want to include google calendar sync status */
    IncludeCalendarExportStatus;
    /**
     * @type {boolean}
     * @description If you want to include booking status information */
    IncludeStatusInformation;
    /**
     * @type {?number}
     * @description The max limit of records you want to retrieve, default is 100 */
    MaxLimit;
    /** @type {ResponseStatus} */
    ResponseStatus;
}
export class QvicklyArticle {
    /** @param {{artnr?:string,title?:string,quantity?:number,aprice?:number,tax?:number,discount?:number,withouttax?:number,taxrate?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    artnr;
    /** @type {string} */
    title;
    /** @type {number} */
    quantity;
    /** @type {number} */
    aprice;
    /** @type {number} */
    tax;
    /** @type {number} */
    discount;
    /** @type {number} */
    withouttax;
    /** @type {number} */
    taxrate;
}
export class Customer {
    /** @param {{City?:string,CountryCode?:string,IdentityNumber?:string,Email?:string,FirstName?:string,LastName?:string,Phone?:string,PostalCode?:string,Street?:string,Reference?:string,Type?:CustomerType}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    City;
    /** @type {string} */
    CountryCode;
    /** @type {string} */
    IdentityNumber;
    /** @type {string} */
    Email;
    /** @type {string} */
    FirstName;
    /** @type {string} */
    LastName;
    /** @type {string} */
    Phone;
    /** @type {string} */
    PostalCode;
    /** @type {string} */
    Street;
    /** @type {string} */
    Reference;
    /** @type {CustomerType} */
    Type;
}
/** @typedef {number} */
export var Currency;
(function (Currency) {
    Currency[Currency["SEK"] = 1] = "SEK"
    Currency[Currency["EUR"] = 2] = "EUR"
})(Currency || (Currency = {}));
export class AccessKeyTypeResponse {
    /** @param {{Id?:number,KeyType?:string,Description?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    Id;
    /** @type {string} */
    KeyType;
    /** @type {string} */
    Description;
}
/** @typedef T {any} */
export class QueryResponse {
    /** @param {{Offset?:number,Total?:number,Results?:T[],Meta?:{ [index: string]: string; },ResponseStatus?:ResponseStatus}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    Offset;
    /** @type {number} */
    Total;
    /** @type {T[]} */
    Results;
    /** @type {{ [index: string]: string; }} */
    Meta;
    /** @type {ResponseStatus} */
    ResponseStatus;
}

JavaScript SuperAdminBookingQuery DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /superadmin/bookings HTTP/1.1 
Host: api.bokamera.se 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<QueryResponseOfBookingQueryResponseWg5EthtI xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types">
  <Offset>0</Offset>
  <Total>0</Total>
  <Results xmlns:d2p1="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
    <d2p1:BookingQueryResponse>
      <d2p1:BookedBy>String</d2p1:BookedBy>
      <d2p1:BookedComments>String</d2p1:BookedComments>
      <d2p1:BookedResourceTypes>
        <d2p1:BookedResourceType>
          <d2p1:Id>0</d2p1:Id>
          <d2p1:Name>String</d2p1:Name>
          <d2p1:Resources>
            <d2p1:BookedResource>
              <d2p1:AccessGroup>String</d2p1:AccessGroup>
              <d2p1:Color>String</d2p1:Color>
              <d2p1:Email>String</d2p1:Email>
              <d2p1:EmailNotification>false</d2p1:EmailNotification>
              <d2p1:EmailReminder>false</d2p1:EmailReminder>
              <d2p1:Id>0</d2p1:Id>
              <d2p1:ImageUrl i:nil="true" />
              <d2p1:MobilePhone>String</d2p1:MobilePhone>
              <d2p1:Name>String</d2p1:Name>
              <d2p1:SMSNotification>false</d2p1:SMSNotification>
              <d2p1:SMSReminder>false</d2p1:SMSReminder>
            </d2p1:BookedResource>
          </d2p1:Resources>
        </d2p1:BookedResourceType>
      </d2p1:BookedResourceTypes>
      <d2p1:CalendarExportStatus>
        <d2p1:BookingId>0</d2p1:BookingId>
        <d2p1:CalendarId>String</d2p1:CalendarId>
        <d2p1:Synced>false</d2p1:Synced>
      </d2p1:CalendarExportStatus>
      <d2p1:CancellationCode>String</d2p1:CancellationCode>
      <d2p1:CheckoutLog>
        <d2p1:BookingCheckoutQueryResponse>
          <d2p1:BookingId>0</d2p1:BookingId>
          <d2p1:Created>0001-01-01T00:00:00</d2p1:Created>
          <d2p1:ExpirationTime>0001-01-01T00:00:00</d2p1:ExpirationTime>
          <d2p1:Id>00000000-0000-0000-0000-000000000000</d2p1:Id>
          <d2p1:Message>String</d2p1:Message>
          <d2p1:PurchaseId>0</d2p1:PurchaseId>
          <d2p1:Snippet>String</d2p1:Snippet>
          <d2p1:Status>String</d2p1:Status>
          <d2p1:Updated>0001-01-01T00:00:00</d2p1:Updated>
        </d2p1:BookingCheckoutQueryResponse>
      </d2p1:CheckoutLog>
      <d2p1:CommentsToCustomer>String</d2p1:CommentsToCustomer>
      <d2p1:Company>
        <d2p1:Category>String</d2p1:Category>
        <d2p1:City>String</d2p1:City>
        <d2p1:CountryId>String</d2p1:CountryId>
        <d2p1:Email>String</d2p1:Email>
        <d2p1:HomePage>String</d2p1:HomePage>
        <d2p1:Id>00000000-0000-0000-0000-000000000000</d2p1:Id>
        <d2p1:IsFavorite>false</d2p1:IsFavorite>
        <d2p1:Latitude>String</d2p1:Latitude>
        <d2p1:LogoType i:nil="true" />
        <d2p1:Longitude>String</d2p1:Longitude>
        <d2p1:Name>String</d2p1:Name>
        <d2p1:PaymentProviderId>0</d2p1:PaymentProviderId>
        <d2p1:Phone>String</d2p1:Phone>
        <d2p1:SitePath>String</d2p1:SitePath>
        <d2p1:Street1>String</d2p1:Street1>
        <d2p1:Street2>String</d2p1:Street2>
        <d2p1:ZipCode>String</d2p1:ZipCode>
      </d2p1:Company>
      <d2p1:CompanyId>00000000-0000-0000-0000-000000000000</d2p1:CompanyId>
      <d2p1:CreatedDate>0001-01-01T00:00:00</d2p1:CreatedDate>
      <d2p1:CustomFieldValues>
        <d2p1:CustomFieldDataResponse>
          <d2p1:Column>String</d2p1:Column>
          <d2p1:DataType>String</d2p1:DataType>
          <d2p1:Description>String</d2p1:Description>
          <d2p1:Id>0</d2p1:Id>
          <d2p1:Name>String</d2p1:Name>
          <d2p1:Value>String</d2p1:Value>
        </d2p1:CustomFieldDataResponse>
      </d2p1:CustomFieldValues>
      <d2p1:CustomFields>
        <d2p1:CustomFieldConfigData>
          <d2p1:DataType>String</d2p1:DataType>
          <d2p1:DefaultValue>String</d2p1:DefaultValue>
          <d2p1:Description>String</d2p1:Description>
          <d2p1:Id>0</d2p1:Id>
          <d2p1:IsMandatory>false</d2p1:IsMandatory>
          <d2p1:MandatoryErrorMessage>String</d2p1:MandatoryErrorMessage>
          <d2p1:MaxLength>0</d2p1:MaxLength>
          <d2p1:MultipleLineText>false</d2p1:MultipleLineText>
          <d2p1:Name>String</d2p1:Name>
          <d2p1:RegEx>String</d2p1:RegEx>
          <d2p1:RegExErrorMessage>String</d2p1:RegExErrorMessage>
          <d2p1:Values>
            <d2p1:CustomFieldValueResponse>
              <d2p1:Value>String</d2p1:Value>
            </d2p1:CustomFieldValueResponse>
          </d2p1:Values>
          <d2p1:Width>0</d2p1:Width>
        </d2p1:CustomFieldConfigData>
      </d2p1:CustomFields>
      <d2p1:Customer>
        <d2p1:CorporateIdentityNumber>String</d2p1:CorporateIdentityNumber>
        <d2p1:Email>String</d2p1:Email>
        <d2p1:FacebookUserName>String</d2p1:FacebookUserName>
        <d2p1:Firstname>String</d2p1:Firstname>
        <d2p1:Id>00000000-0000-0000-0000-000000000000</d2p1:Id>
        <d2p1:ImageUrl>String</d2p1:ImageUrl>
        <d2p1:InvoiceAddress1>String</d2p1:InvoiceAddress1>
        <d2p1:InvoiceAddress2>String</d2p1:InvoiceAddress2>
        <d2p1:InvoiceCity>String</d2p1:InvoiceCity>
        <d2p1:InvoiceCountryCode>String</d2p1:InvoiceCountryCode>
        <d2p1:InvoicePostalCode>String</d2p1:InvoicePostalCode>
        <d2p1:Lastname>String</d2p1:Lastname>
        <d2p1:Phone>String</d2p1:Phone>
      </d2p1:Customer>
      <d2p1:ExternalReference>
        <d2p1:ExternalReferenceResponse>
          <d2p1:CompanyId>00000000-0000-0000-0000-000000000000</d2p1:CompanyId>
          <d2p1:Created>0001-01-01T00:00:00</d2p1:Created>
          <d2p1:CreatedBy>String</d2p1:CreatedBy>
          <d2p1:ExternalData>String</d2p1:ExternalData>
          <d2p1:Id>00000000-0000-0000-0000-000000000000</d2p1:Id>
          <d2p1:OwnerId>00000000-0000-0000-0000-000000000000</d2p1:OwnerId>
          <d2p1:ReferenceType>String</d2p1:ReferenceType>
          <d2p1:Updated>0001-01-01T00:00:00</d2p1:Updated>
        </d2p1:ExternalReferenceResponse>
      </d2p1:ExternalReference>
      <d2p1:From>0001-01-01T00:00:00</d2p1:From>
      <d2p1:Id>0</d2p1:Id>
      <d2p1:LastTimeToUnBook>0001-01-01T00:00:00</d2p1:LastTimeToUnBook>
      <d2p1:LengthInMinutes>0</d2p1:LengthInMinutes>
      <d2p1:Log>
        <d2p1:BookingLogQueryResponse>
          <d2p1:BookingId>0</d2p1:BookingId>
          <d2p1:Comments>String</d2p1:Comments>
          <d2p1:Created>0001-01-01T00:00:00</d2p1:Created>
          <d2p1:EventType>
            <d2p1:Description>String</d2p1:Description>
            <d2p1:Id>0</d2p1:Id>
            <d2p1:Name>String</d2p1:Name>
          </d2p1:EventType>
          <d2p1:EventTypeId>0</d2p1:EventTypeId>
          <d2p1:Id>0</d2p1:Id>
          <d2p1:UserName>String</d2p1:UserName>
        </d2p1:BookingLogQueryResponse>
      </d2p1:Log>
      <d2p1:PaymentExpiration>0001-01-01T00:00:00</d2p1:PaymentExpiration>
      <d2p1:PaymentLog>
        <d2p1:BookingPaymentLogQueryResponse>
          <d2p1:Amount>0</d2p1:Amount>
          <d2p1:AmountCredited>0</d2p1:AmountCredited>
          <d2p1:BookingId>0</d2p1:BookingId>
          <d2p1:Comments>String</d2p1:Comments>
          <d2p1:Created>0001-01-01T00:00:00</d2p1:Created>
          <d2p1:CurrencyId>String</d2p1:CurrencyId>
          <d2p1:CurrencyInfo>
            <d2p1:CurrencySign>String</d2p1:CurrencySign>
            <d2p1:Id>String</d2p1:Id>
            <d2p1:Name>String</d2p1:Name>
          </d2p1:CurrencyInfo>
          <d2p1:Id>0</d2p1:Id>
          <d2p1:OrderItemReferenceId>String</d2p1:OrderItemReferenceId>
          <d2p1:PaymentProviderId>0</d2p1:PaymentProviderId>
          <d2p1:PaymentReferenceId>String</d2p1:PaymentReferenceId>
          <d2p1:Updated>0001-01-01T00:00:00</d2p1:Updated>
          <d2p1:VAT>0</d2p1:VAT>
        </d2p1:BookingPaymentLogQueryResponse>
      </d2p1:PaymentLog>
      <d2p1:Quantities>
        <d2p1:BookedQuantity>
          <d2p1:Category>String</d2p1:Category>
          <d2p1:CurrencyId>String</d2p1:CurrencyId>
          <d2p1:Id>0</d2p1:Id>
          <d2p1:OccupiesSpot>false</d2p1:OccupiesSpot>
          <d2p1:Price>0</d2p1:Price>
          <d2p1:PriceBeforeRebate>0</d2p1:PriceBeforeRebate>
          <d2p1:PriceSign>String</d2p1:PriceSign>
          <d2p1:PriceText>String</d2p1:PriceText>
          <d2p1:Quantity>0</d2p1:Quantity>
          <d2p1:VAT>0</d2p1:VAT>
        </d2p1:BookedQuantity>
      </d2p1:Quantities>
      <d2p1:RatingCode>String</d2p1:RatingCode>
      <d2p1:ResponseStatus>
        <ErrorCode>String</ErrorCode>
        <Message>String</Message>
        <StackTrace>String</StackTrace>
        <Errors>
          <ResponseError>
            <ErrorCode>String</ErrorCode>
            <FieldName>String</FieldName>
            <Message>String</Message>
            <Meta xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
              <d7p1:KeyValueOfstringstring>
                <d7p1:Key>String</d7p1:Key>
                <d7p1:Value>String</d7p1:Value>
              </d7p1:KeyValueOfstringstring>
            </Meta>
          </ResponseError>
        </Errors>
        <Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </Meta>
      </d2p1:ResponseStatus>
      <d2p1:SendEmailConfirmation>false</d2p1:SendEmailConfirmation>
      <d2p1:SendEmailReminder>false</d2p1:SendEmailReminder>
      <d2p1:SendSmsConfirmation>false</d2p1:SendSmsConfirmation>
      <d2p1:SendSmsReminder>false</d2p1:SendSmsReminder>
      <d2p1:Service>
        <d2p1:Description>String</d2p1:Description>
        <d2p1:GroupBooking>
          <d2p1:Active>false</d2p1:Active>
          <d2p1:Max>0</d2p1:Max>
          <d2p1:Min>0</d2p1:Min>
        </d2p1:GroupBooking>
        <d2p1:Id>0</d2p1:Id>
        <d2p1:ImageUrl i:nil="true" />
        <d2p1:IsGroupBooking>false</d2p1:IsGroupBooking>
        <d2p1:IsPaymentEnabled>false</d2p1:IsPaymentEnabled>
        <d2p1:LengthInMinutes>0</d2p1:LengthInMinutes>
        <d2p1:MaxNumberOfSpotsPerBooking>0</d2p1:MaxNumberOfSpotsPerBooking>
        <d2p1:MinNumberOfSpotsPerBooking>0</d2p1:MinNumberOfSpotsPerBooking>
        <d2p1:MultipleResource>
          <d2p1:Active>false</d2p1:Active>
          <d2p1:Max>0</d2p1:Max>
          <d2p1:Min>0</d2p1:Min>
        </d2p1:MultipleResource>
        <d2p1:Name>String</d2p1:Name>
      </d2p1:Service>
      <d2p1:Status>Booked</d2p1:Status>
      <d2p1:StatusId>0</d2p1:StatusId>
      <d2p1:StatusInfo>
        <d2p1:Color>String</d2p1:Color>
        <d2p1:Description>String</d2p1:Description>
        <d2p1:Icon>String</d2p1:Icon>
        <d2p1:Id>0</d2p1:Id>
        <d2p1:Name>String</d2p1:Name>
      </d2p1:StatusInfo>
      <d2p1:StatusName>String</d2p1:StatusName>
      <d2p1:To>0001-01-01T00:00:00</d2p1:To>
      <d2p1:UnbookedComments>String</d2p1:UnbookedComments>
      <d2p1:UnbookedOn>0001-01-01T00:00:00</d2p1:UnbookedOn>
      <d2p1:UpdatedDate>0001-01-01T00:00:00</d2p1:UpdatedDate>
    </d2p1:BookingQueryResponse>
  </Results>
  <Meta xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:KeyValueOfstringstring>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value>String</d2p1:Value>
    </d2p1:KeyValueOfstringstring>
  </Meta>
  <ResponseStatus>
    <ErrorCode>String</ErrorCode>
    <Message>String</Message>
    <StackTrace>String</StackTrace>
    <Errors>
      <ResponseError>
        <ErrorCode>String</ErrorCode>
        <FieldName>String</FieldName>
        <Message>String</Message>
        <Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </Meta>
      </ResponseError>
    </Errors>
    <Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </Meta>
  </ResponseStatus>
</QueryResponseOfBookingQueryResponseWg5EthtI>