/* Options: Date: 2025-12-10 18:49:53 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CompanyUserQuery.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } // @DataContract export class QueryBase { /** @description Skip over a given number of elements in a sequence and then return the remainder. Use this when you need paging.

Example:
?skip=10&orderBy=Id */ // @DataMember(Order=1) public Skip?: number; /** @description Return a given number of elements in a sequence and then skip over the remainder. Use this when you need paging.

Example:
?take=20 */ // @DataMember(Order=2) public Take?: number; /** @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.

Example:
?orderBy=Id,-Age,FirstName */ // @DataMember(Order=3) public OrderBy: 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.

Example:
?orderByDesc=Id,-Age,FirstName */ // @DataMember(Order=4) public OrderByDesc: string; /** @description Include any of the aggregates AVG, COUNT, FIRST, LAST, MAX, MIN, SUM in your result set. The results will be returned in the meta field.

Example:
?include=COUNT(*) as Total

or multiple fields with
?include=Count(*) Total, Min(Age), AVG(Age) AverageAge

or unique with
?include=COUNT(DISTINCT LivingStatus) as UniqueStatus */ // @DataMember(Order=5) public Include: string; // @DataMember(Order=6) public Fields: string; // @DataMember(Order=7) public Meta: { [index:string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class QueryDb extends QueryBase { public constructor(init?: Partial>) { super(init); (Object as any).assign(this, init); } } export interface ICompany { CompanyId?: string; } export class BaseModel { public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BillingMethodCountriesRelation extends BaseModel { // @Required() public BillingMethodId: number; // @Required() public CountryId: string; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class BillingMethod extends BaseModel { public BillingMethodCountriesRelation: BillingMethodCountriesRelation[] = []; // @Required() public Name: string; // @Required() public Description: string; public ModifiedDate?: string; public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class BillingInformation extends BaseModel implements IBaseModelCreated, IBaseModelUpdated { public BillingMethod: BillingMethod; // @Required() public BillingMethodId: number; // @Required() public Name: string; public FirstName: string; public LastName: string; public PhoneNumber: string; public Attention: string; public Street1: string; public Street2: string; public ZipCode: string; public City: string; public Email: string; public CreditCard: string; public CreditCardHolder: string; public CreditCardNumber: string; public ValidToYear?: number; public ValidToMonth?: number; public CSV: string; // @Required() public UpdatedDate: string; // @Required() public CreatedDate: string; // @Required() public CountryId: string; // @Required() public PaymentTermsDays: number; public VatRegistrationNumber: string; public LicensePlanId: number; public GLN: string; public ReferenceLine1: string; public ReferenceLine2: string; public ModifiedDate?: string; // @Required() public Id: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } // @DataContract export class ResponseError { // @DataMember(Order=1) public ErrorCode: string; // @DataMember(Order=2) public FieldName: string; // @DataMember(Order=3) public Message: string; // @DataMember(Order=4) public Meta: { [index:string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ResponseStatus { // @DataMember(Order=1) public ErrorCode: string; // @DataMember(Order=2) public Message: string; // @DataMember(Order=3) public StackTrace: string; // @DataMember(Order=4) public Errors: ResponseError[]; // @DataMember(Order=5) public Meta: { [index:string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum BookingStatusEnum { Booked = 1, Unbooked = 2, Reserved = 3, Canceled = 4, AwaitingPayment = 5, AwaitingPaymentNoTimeLimit = 6, Payed = 7, AwaitingPaymentRequestFromAdmin = 8, AwaitingPaymentFromProvider = 9, Invoiced = 10, } export interface IInterval { From: string; To: string; } export class CompanyCategory extends BaseModel { // @Required() public Name: string; // @Required() public Active: boolean; public ModifiedDate?: string; public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class CompanyType extends BaseModel { // @Required() public Name: string; // @Required() public Description: string; public ModifiedDate?: string; // @Required() public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export enum CompanyStatus { Registered = 1, AwaitingApproval = 2, Approved = 3, Inactive = 4, ClosedDown = 5, NotApproved = 6, } export class CustomFieldValue extends BaseModel { // @Required() public CompanyId: string; public Id: number; // @Required() public Value: string; // @Required() public Active: boolean; public SortOrder?: number; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class CustomField extends BaseModel { // @Required() public Table: string; // @Required() public Column: string; // @Required() public DataType: string; // @Required() public Description: string; // @Required() public Active: boolean; public ModifiedDate?: string; public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class RegEx extends BaseModel { // @Required() public Name: string; // @Required() public Description: string; // @Required() public RegExCode: string; public ErrorMessage: string; public ModifiedDate?: string; public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class CustomFieldServiceRelation extends BaseModel { // @Required() public CompanyId: string; public Id: number; // @Required() public CustomFieldConfigId: number; // @Required() public ServiceId: number; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class CustomFieldConfig extends BaseModel { // @Ignore() public Values: CustomFieldValue[] = []; public CustomField: CustomField; // @Ignore() public RegEx: RegEx; // @Ignore() public Services: Service[] = []; public CustomFieldServiceRelation: CustomFieldServiceRelation[] = []; // @Required() public CompanyId: string; public Id: number; public GroupId?: number; // @Required() public FieldId: number; // @Required() public IconId: number; public RegExId?: number; // @Required() public Name: string; // @Required() public Description: string; // @Required() public Datatype: string; // @Required() public MaxLength: number; // @Required() public IsPublic: boolean; // @Required() public IsHidden: boolean; // @Required() public IsMandatory: boolean; public DefaultValue: string; public RegExErrorMessage: string; public MandatoryErrorMessage: string; public Width?: number; // @Required() public MultipleLineText: boolean; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class ScheduleView extends BaseModel { // @Required() public Name: string; public ModifiedDate?: string; public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class WeekNumberSetting extends BaseModel { // @Required() public Name: string; // @Required() public Description: string; public ModifiedDate?: string; // @Required() public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class BookingTemplate extends BaseModel { // @Required() public Name: string; // @Required() public Description: string; // @Required() public UsedByApplication: string; public ModifiedDate?: string; public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class CalendarType extends BaseModel { // @Required() public Name: string; // @Required() public Description: string; // @Required() public Active: boolean; public ModifiedDate?: string; public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class FreeSpotTexts extends BaseModel { // @Required() public TextSingular: string; // @Required() public TextPlural: string; public ModifiedDate?: string; // @Required() public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class BookingStatusOptions { public Id: number; public Name: string; public Description: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BookingSettings extends BaseModel { // @References("typeof(BokaMera.API.ServiceModel.Db.FreeSpotTexts)") public FreeSpotTextsId: number; // @Ignore() public SendEmailConfirmation: boolean; // @Ignore() public ScheduleViewOptions: ScheduleView[] = []; // @Ignore() public WeekNumberSettingOptions: WeekNumberSetting[] = []; // @Ignore() public BookingTemplateOptions: BookingTemplate[] = []; // @Ignore() public CalendarTypeOptions: CalendarType[] = []; // @Ignore() public FreeSpotTextOptions: FreeSpotTexts[] = []; // @Ignore() public BookingStatusOptions: BookingStatusOptions[] = []; public FreeSpotTextsInfo: FreeSpotTexts; // @Ignore() public FreeSpotsTextSingular: string; // @Ignore() public FreeSpotsTextPlural: string; // @Required() public BookingStatusId: number; // @Required() public ScheduleViewId: number; // @Required() public BookingTemplateId: number; // @Required() public CalendarTypeId: number; // @Required() public AllowBookingOnUnbookedTimes: boolean; // @Required() public SendEmailReminder: boolean; // @Required() public SendSmsReminder: boolean; // @Required() public SendSmsConfirmation: boolean; // @Required() public EmailReminderTime: number; // @Required() public SmsReminderTime: number; // @Required() public SendPushNotification: boolean; // @Required() public SendPushNotificationReminder: boolean; // @Required() public PushNotificationReminderTime: number; // @Required() public MaxActiveBookings: number; // @Required() public SendNotifications: boolean; public SendNotificationsEmail?: string; // @Required() public EnableMobileApp: boolean; public ScheduleStartTime?: string; public ScheduleEndTime?: string; public ReceiptTemplate?: string; // @Required() public ScheduleTimeSlotMinutes: number; // @Required() public ShowFreeTimesLeft: boolean; // @Required() public EnableICalGroupBookings: boolean; public AgreementTemplate?: string; // @Required() public ScheduleShowTimeExeptions: boolean; // @Required() public EnableBookingsOnSameTime: boolean; // @Required() public ShowWeekNumberSettingId: number; // @Required() public EnableShowBookedTimes: boolean; // @Required() public EnableSendFollowUpMessage: boolean; // @Required() public FollowUpMessageTime: number; public MessageText?: string; // @Required() public ScheduleGroupResources: boolean; // @Required() public BookSpotUserResponseMinutes: number; // @Required() public IsBookSpotDirectly: boolean; // @Required() public BookSpotDirectlyTimeLeftMinutes: number; // @Required() public SendEmailNotificationQueue: boolean; // @Required() public SendSMSNotificationQueue: boolean; // @Required() public SchedulerDisableHorizontalScrolling: boolean; // @Required() public BookOnlyOnExistingCustomers: boolean; // @Required() public AutoGenerateUniquePinCode: boolean; // @Required() public WeightedPrices: boolean; public ModifiedDate?: string; // @Required() public AutoCreateUserProfile: boolean; public ShowMultipleResourcesAsOne: boolean; public ShowPersonalIdentityNumber: boolean; public PersonalIdentityNumberRequired: boolean; public ShowMultiDayAsTime: boolean; public BookingPinCodeRestriction?: string; public CustomerInvoiceAdressRequired: boolean; // @Required() public Id: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class CodeLockSystem extends BaseModel { // @Required() public Name: string; // @Required() public Supplier: string; public LogoType: string; // @Required() public Description: string; public ModifiedDate?: string; // @Required() public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class CodeLockSetting extends BaseModel { // @Ignore() public CodeLockSystemOptions: CodeLockSystem[] = []; // @Required() public Active: boolean; // @Required() public CodeLockSystemsId: number; // @Required() public ValidBeforeMinutes: number; // @Required() public ValidAfterMinutes: number; // @Required() public DeleteOldBySchedule: boolean; // @Required() public Created: string; // @Required() public Updated: string; public ModifiedDate?: string; // @Required() public SendEmailNotification: boolean; // @Required() public SendSMSNotification: boolean; // @Required() public EmailNotificationTime: number; // @Required() public SMSNotificationTime: number; // @Required() public Id: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class AdminPaymentOptions extends BaseModel { // @Required() public Name: string; // @Required() public Description: string; public ModifiedDate?: string; // @Required() public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class PaymentProviders extends BaseModel { // @Required() public Name: string; // @Required() public Description: string; // @Required() public Category: string; public Url: string; // @Required() public Active: boolean; public ModifiedDate?: string; // @Required() public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class PaymentSettings extends BaseModel implements IBaseModelUpdated { // @Ignore() public AdminPaymentOption: AdminPaymentOptions; // @Ignore() public AdminPaymentOptions: AdminPaymentOptions[] = []; // @Ignore() public PaymentProviderOptions: PaymentProviders[] = []; // @Required() public Id: string; // @Required() public Enabled: boolean; // @Required() public RefundOnCancelBooking: boolean; public DefaultPaymentOptionId?: number; // @Required() public PaymentProviderId: number; public UpdatedDate: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class LanguageResponse { public Id: string; public Name: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CompanySetting extends BaseModel { // @Ignore() public Languages: LanguageResponse[] = []; // @Required() public Active: boolean; public InactiveMessage: string; // @Required() public Searchable: boolean; public GATrackingId: string; public FacebookPixelId: string; // @Required() public MultiLanguage: boolean; // @Required() public EnableAPITranslation: boolean; // @Required() public DefaultLanguage: string; public ModifiedDate?: string; public GTMTrackingId: string; // @Required() public ShowOnMarketPlace: boolean; public GoogleAdsConversionId: string; public LinkedinTagId: string; public GoogleAdsConversionLabel: string; public SendCustomerInformationToExternalProviders: boolean; // @Required() public Id: string; public IsWebhookFeatureEnabled: boolean; public SmsMessageSendLimit?: number; public EmailMessageSendLimit?: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class WidgetServiceLayouts extends BaseModel { // @Required() public Name: string; // @Required() public Description: string; // @Required() public Code: string; public ModifiedDate?: string; // @Required() public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class WidgetTimeLayouts extends BaseModel { // @Required() public Name: string; // @Required() public Description: string; // @Required() public Code: string; public ModifiedDate?: string; // @Required() public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class WidgetBookingLayouts extends BaseModel { // @Required() public Name: string; // @Required() public Description: string; // @Required() public Code: string; public ModifiedDate?: string; // @Required() public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class WidgetBookingMethods extends BaseModel { // @Required() public Name: string; // @Required() public Description: string; // @Required() public Code: string; public ModifiedDate?: string; // @Required() public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class HomepageWidgetSetting extends BaseModel { // @Ignore() public WidgetServiceLayoutOptions: WidgetServiceLayouts[] = []; // @Ignore() public WidgetTimeLayoutOptions: WidgetTimeLayouts[] = []; // @Ignore() public WidgetBookingLayoutOptions: WidgetBookingLayouts[] = []; // @Ignore() public WidgetBookingMethodOptions: WidgetBookingMethods[] = []; // @Required() public ServiceLayoutId: number; // @Required() public TimeLayoutId: number; // @Required() public BookingLayoutId: number; // @Required() public PrimaryColor: string; // @Required() public ShowServiceImage: boolean; // @Required() public ShowNextAvailableTime: boolean; // @Required() public ShowEndTime: boolean; public BookedTimeSlotText?: string; // @Required() public DarkTheme: boolean; // @Required() public ShowRebateCodeField: boolean; public ModifiedDate?: string; // @Required() public EnableCreateAccount: boolean; // @Required() public EnableLogin: boolean; // @Required() public EnableDirectBooking: boolean; // @Required() public EnableFacebookLogin: boolean; // @Required() public ShowSubscribeToNewsletter: boolean; // @Required() public Id: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class HomepageTemplate extends BaseModel { // @Required() public Name: string; // @Required() public Description: string; public ImageUrl: string; // @Required() public Premium: boolean; public ModifiedDate?: string; public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class HeroSectionStyle extends BaseModel { // @Required() public Name: string; public Description: string; public ModifiedDate?: string; // @Required() public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class HomepageSetting extends BaseModel implements ICompany { // @Ignore() public HomepageTemplateOptions: HomepageTemplate[] = []; // @Ignore() public HomepageHeroSectionStyleOptions: HeroSectionStyle[] = []; // @Ignore() public CompanyId?: string; public WelcomePageHeading: string; public WelcomePageBody: string; public AboutUsPageHeading: string; public AboutUsPageBody: string; // @Required() public HomePageTemplateId: number; public ImageUrl: string; // @Required() public Updated: string; // @Required() public Created: string; public HomepageHeading: string; // @Required() public HeroSectionStyleId: number; public ModifiedDate?: string; // @Required() public ShowRating: boolean; // @Required() public EnableHomepage: boolean; // @Required() public Id: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class AverageRatingScore { public AverageScore: number; public Score1Count: number; public Score2Count: number; public Score3Count: number; public Score4Count: number; public Score5Count: number; public Count: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Review extends BaseModel { public ReviewId: string; // @Required() public CompanyId: string; // @Required() public Title: string; // @Required() public Description: string; // @Required() public Author: string; // @Required() public Status: number; // @Required() public Created: string; // @Required() public Updated: string; public ModifiedDate?: string; public ReviewAnswer: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class Rating extends BaseModel { public ReviewId?: string; public Review: Review; // @Required() public CompanyId: string; // @Required() public BookingId: number; // @Required() public RatingScore: number; // @Required() public Status: number; // @Required() public Created: string; // @Required() public Updated: string; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class ProductGroupResponse { public Id: string; public Name: string; public TierId: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TierResponse { public Id: string; public Name: string; public ProductGroups: ProductGroupResponse[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class VossSubscriptionResponse { public SubscriptionBillingPeriodStartDate: string; public SubscriptionBillingPeriodEndDate: string; public Tier: TierResponse; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum CountryCodeEnum { AD = 'AD', AE = 'AE', AF = 'AF', AG = 'AG', AI = 'AI', AL = 'AL', AM = 'AM', AO = 'AO', AQ = 'AQ', AR = 'AR', AS = 'AS', AT = 'AT', AU = 'AU', AW = 'AW', AX = 'AX', AZ = 'AZ', BA = 'BA', BB = 'BB', BD = 'BD', BE = 'BE', BF = 'BF', BG = 'BG', BH = 'BH', BI = 'BI', BJ = 'BJ', BL = 'BL', BM = 'BM', BN = 'BN', BO = 'BO', BQ = 'BQ', BR = 'BR', BS = 'BS', BT = 'BT', BV = 'BV', BW = 'BW', BY = 'BY', BZ = 'BZ', CA = 'CA', CC = 'CC', CD = 'CD', CF = 'CF', CG = 'CG', CH = 'CH', CI = 'CI', CK = 'CK', CL = 'CL', CM = 'CM', CN = 'CN', CO = 'CO', CR = 'CR', CU = 'CU', CV = 'CV', CW = 'CW', CX = 'CX', CY = 'CY', CZ = 'CZ', DE = 'DE', DJ = 'DJ', DK = 'DK', DM = 'DM', DO = 'DO', DZ = 'DZ', EC = 'EC', EE = 'EE', EG = 'EG', EH = 'EH', ER = 'ER', ES = 'ES', ET = 'ET', FI = 'FI', FJ = 'FJ', FK = 'FK', FM = 'FM', FO = 'FO', FR = 'FR', GA = 'GA', GB = 'GB', GD = 'GD', GE = 'GE', GF = 'GF', GG = 'GG', GH = 'GH', GI = 'GI', GL = 'GL', GM = 'GM', GN = 'GN', GP = 'GP', GQ = 'GQ', GR = 'GR', GS = 'GS', GT = 'GT', GU = 'GU', GW = 'GW', GY = 'GY', HK = 'HK', HM = 'HM', HN = 'HN', HR = 'HR', HT = 'HT', HU = 'HU', ID = 'ID', IE = 'IE', IL = 'IL', IM = 'IM', IN = 'IN', IO = 'IO', IQ = 'IQ', IR = 'IR', IS = 'IS', IT = 'IT', JE = 'JE', JM = 'JM', JO = 'JO', JP = 'JP', KE = 'KE', KG = 'KG', KH = 'KH', KI = 'KI', KM = 'KM', KN = 'KN', KP = 'KP', KR = 'KR', KW = 'KW', KY = 'KY', KZ = 'KZ', LA = 'LA', LB = 'LB', LC = 'LC', LI = 'LI', LK = 'LK', LR = 'LR', LS = 'LS', LT = 'LT', LU = 'LU', LV = 'LV', LY = 'LY', MA = 'MA', MC = 'MC', MD = 'MD', ME = 'ME', MF = 'MF', MG = 'MG', MH = 'MH', MK = 'MK', ML = 'ML', MM = 'MM', MN = 'MN', MO = 'MO', MP = 'MP', MQ = 'MQ', MR = 'MR', MS = 'MS', MT = 'MT', MU = 'MU', MV = 'MV', MW = 'MW', MX = 'MX', MY = 'MY', MZ = 'MZ', NA = 'NA', NC = 'NC', NE = 'NE', NF = 'NF', NG = 'NG', NI = 'NI', NL = 'NL', NO = 'NO', NP = 'NP', NR = 'NR', NU = 'NU', NZ = 'NZ', OM = 'OM', PA = 'PA', PE = 'PE', PF = 'PF', PG = 'PG', PH = 'PH', PK = 'PK', PL = 'PL', PM = 'PM', PN = 'PN', PR = 'PR', PS = 'PS', PT = 'PT', PW = 'PW', PY = 'PY', QA = 'QA', RE = 'RE', RO = 'RO', RS = 'RS', RU = 'RU', RW = 'RW', SA = 'SA', SB = 'SB', SC = 'SC', SD = 'SD', SE = 'SE', SG = 'SG', SH = 'SH', SI = 'SI', SJ = 'SJ', SK = 'SK', SL = 'SL', SM = 'SM', SN = 'SN', SO = 'SO', SR = 'SR', SS = 'SS', ST = 'ST', SV = 'SV', SX = 'SX', SY = 'SY', SZ = 'SZ', TC = 'TC', TD = 'TD', TF = 'TF', TG = 'TG', TH = 'TH', TJ = 'TJ', TK = 'TK', TL = 'TL', TM = 'TM', TN = 'TN', TO = 'TO', TR = 'TR', TT = 'TT', TV = 'TV', TW = 'TW', TZ = 'TZ', UA = 'UA', UG = 'UG', UM = 'UM', US = 'US', UY = 'UY', UZ = 'UZ', VA = 'VA', VC = 'VC', VE = 'VE', VG = 'VG', VI = 'VI', VN = 'VN', VU = 'VU', WF = 'WF', WS = 'WS', YE = 'YE', YT = 'YT', ZA = 'ZA', ZM = 'ZM', ZW = 'ZW', } // @DataContract(Name="CustomerContactPersonDto") export class CustomerContactPersonDto { // @DataMember(Name="email", IsRequired=true) public email: string; // @DataMember(Name="firstName", IsRequired=true) public firstName: string; // @DataMember(Name="lastName", IsRequired=true) public lastName: string; // @DataMember(Name="phoneNumber") public phoneNumber: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract(Name="CustomerTargetGroupDto") export class CustomerTargetGroupDto { // @DataMember(Name="id", IsRequired=true) public id: string; // @DataMember(Name="name", IsRequired=true) public name: string; // @DataMember(Name="isDefault") public isDefault: boolean; // @DataMember(Name="externalId") public externalId: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract(Name="CustomerResult") export class CustomerResult { // @DataMember(Name="countryCode") public countryCode?: CountryCodeEnum; // @DataMember(Name="id", IsRequired=true) public id: string; // @DataMember(Name="name", IsRequired=true) public name: string; // @DataMember(Name="customerNumber") public customerNumber?: number; // @DataMember(Name="organizationNumber") public organizationNumber: string; // @DataMember(Name="email") public email: string; // @DataMember(Name="careOf") public careOf: string; // @DataMember(Name="address") public address: string; // @DataMember(Name="postalCode") public postalCode: string; // @DataMember(Name="city") public city: string; // @DataMember(Name="electronicInvoiceOperatorCode") public electronicInvoiceOperatorCode: string; // @DataMember(Name="electronicInvoiceAddress") public electronicInvoiceAddress: string; // @DataMember(Name="customerGroup") public customerGroup?: number; // @DataMember(Name="contactPerson") public contactPerson: CustomerContactPersonDto; // @DataMember(Name="targetGroups", EmitDefaultValue=false) public targetGroups: CustomerTargetGroupDto[] = []; // @DataMember(Name="expiryDate") public expiryDate?: string; // @DataMember(Name="created", IsRequired=true) public created: string; // @DataMember(Name="externalId") public externalId: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum ScheduleType { NotDefined = 'NotDefined', RecurringSchedule = 'RecurringSchedule', DateSchedule = 'DateSchedule', } export interface ISchedule { CompanyId: string; Resources: IList; Type: ScheduleType; Active: boolean; IsResourceSpecific: boolean; } export interface ITimeException extends IInterval { Id: number; ReasonText: string; IsBlock: boolean; ReasonTextPublic: string; IsRecurring: boolean; ResourceIds: number[] = []; } export class BookedCustomer { public Id: string; public Firstname: string; public Lastname: string; public Email: string; public Phone: string; public FacebookUserName: string; public ImageUrl: string; public PersonalIdentityNumber: string; public CorporateIdentityNumber: string; public InvoiceAddress1: string; public InvoiceAddress2: string; public InvoiceCity: string; public InvoicePostalCode: string; public InvoiceCountryCode: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface IBookedTime extends IInterval { Id: number; ServiceId: number; BookedSpots: number; TotalSpots: number; PauseAfterInMinutes: number; Status: BookingStatusEnum; StatusId: number; Customer: BookedCustomer; } export class CustomFieldDataResponse { public Id: number; public Column: string; public Name: string; public Description: string; public Value: string; /** @description Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox' */ // @ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'") public DataType: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Resource extends BaseModel implements ICustomFieldTable, IBaseModelCreated, IBaseModelUpdated { // @Ignore() public Priority: number; // @Ignore() public Schedules: IList; // @Ignore() public Exceptions: IList; // @Ignore() public Bookings: IList; // @Ignore() public CustomFieldsConfig: IList; // @Ignore() public CustomFieldsData: IList; // @Required() public CompanyId: string; public Id: number; // @Required() public Name: string; // @Required() public Active: boolean; public Description: string; public ImageUrl: string; // @Required() public UpdatedDate: string; // @Required() public CreatedDate: string; // @Required() public Color: string; public Email: string; public MobilePhone: string; public EmailNotification?: boolean; public SMSNotification?: boolean; // @Required() public SendSMSReminder: boolean; // @Required() public SendEmailReminder: boolean; public ModifiedDate?: string; public AccessGroup: string; public TextField1: string; public TextField2: string; public TextField3: string; public TextField4: string; public TextField5: string; public TextField6: string; public TextField7: string; public TextField8: string; public TextField9: string; public TextField10: string; public TextField11: string; public TextField12: string; public TextField13: string; public TextField14: string; public TextField15: string; public TextField16: string; public TextField17: string; public TextField18: string; public TextField19: string; public TextField20: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class KeyCloakRole { public Id: string; public Name: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CompanyUser extends BaseModel implements IUser, IBaseModelCreated, IBaseModelUpdated { public Resource: Resource; // @Ignore() public Roles: KeyCloakRole[] = []; // @Ignore() public Company: Company; public Email: string; // @Ignore() public FullName: string; public ResourceId?: number; public WorkerId: string; // @Required() public Active: boolean; // @Required() public IsSuperAdmin: boolean; // @Required() public CreatedDate: string; // @Required() public UpdatedDate: string; public ModifiedDate?: string; // @Required() public CompanyId: string; // @Required() public Id: string; public UserId: string; public Firstname: string; public Lastname: string; // @Required() public SendPushNotification: boolean; // @Required() public SendPushNotificationReminder: boolean; public Phone: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class CompanyOwner extends BaseModel { public Company: Company; public Id: number; // @Required() public Name: string; public Description: string; public LogoTypeUrl: string; // @Required() public BillingCompanyId: string; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class ExternalReference extends BaseModel implements IBaseModelCreated, IBaseModelUpdated { // @Required() public CompanyId: string; // @Required() public Id: string; // @Required() public OwnerId: string; // @Required() public ReferenceType: string; // @Required() public ReferenceTypeId: number; public ExternalData: string; public InternalData: string; public CreatedBy: string; // @Required() public UpdatedDate: string; // @Required() public CreatedDate: string; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class Company extends BaseModel { // @Ignore() public Status: CompanyStatus; // @Ignore() public Active: boolean; // @Ignore() public CustomerCustomFieldsConfig: IList; // @Ignore() public BookingAgreements: string; // @Ignore() public BookingSettings: BookingSettings; // @Ignore() public CompanyType: CompanyType; // @Ignore() public CodeLockSettings: CodeLockSetting; // @Ignore() public PaymentSettings: PaymentSettings; // @Ignore() public Settings: CompanySetting; // @Ignore() public WidgetSettings: HomepageWidgetSetting; // @Ignore() public HomepageSettings: HomepageSetting; // @Ignore() public RatingScore: AverageRatingScore; // @Ignore() public Ratings: Rating[] = []; // @Ignore() public Distance?: number; // @Ignore() public Licenses: License[] = []; // @Ignore() public VossCustomers?: CustomApiResult; // @Ignore() public BillingInformation: BillingInformation; // @Ignore() public CompanyUsers: CompanyUser[] = []; // @Ignore() public CompanyOwner: CompanyOwner; // @Ignore() public ActiveLicenses: License[] = []; // @Ignore() public CurrentLicense: License; // @Ignore() public IsFreeAccount: boolean; // @Ignore() public DefaultLanguage: CultureInfo; public Category: CompanyCategory; // @Ignore() public Lat: number; // @Ignore() public Lon: number; // @Ignore() public IsFavorite: boolean; // @Ignore() public ExternalReferences: IList; // @Required() public OrganisationNumber: string; // @Required() public StatusId: number; // @Required() public CategoryId: number; // @Required() public SitePath: string; // @Required() public Name: string; public Street1?: string; public Street2?: string; public ZipCode?: string; public City?: string; public OpeningHours?: string; public FaxNumber?: string; // @Required() public Email: string; public Phone?: string; public Details?: string; public LogoType?: string; // @Required() public ApprovedByAdmin: boolean; // @Required() public Updated: string; // @Required() public Created: string; public IpAddress?: string; public Homepage?: string; public DomainName?: string; // @Required() public CountryId: string; public TypeId?: number; public ModifiedDate?: string; // @Required() public Id: string; public CompanyOwnerId: number; public DeletionNotificationDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class LicenseTypeItem extends BaseModel { // @Ignore() public Name: string; // @Ignore() public LicenseType: LicenseTypes; // @Required() public LicenseTypesId: number; // @Required() public LicenseItemsId: number; // @Required() public NumberOfItems: number; public Id: number; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class Currency extends BaseModel { // @Required() public Name: string; // @Required() public CurrencySign: string; // @Required() public Active: boolean; public ModifiedDate?: string; // @Required() public Id: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class Country extends BaseModel { // @References("typeof(BokaMera.API.ServiceModel.Db.Currency)") public CurrencyId: string; public CurrencyInfo: Currency; // @Required() public Name: string; public Culture: string; public TimeZone: string; public ModifiedDate?: string; // @Required() public Id: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class LicensePrice extends BaseModel { // @Ignore() public Country: Country; // @Required() public LicenseTypeId: number; // @Required() public CountryId: string; // @Required() public Price: number; public ModifiedDate?: string; public LicensePlanId: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class LicenseTypes extends BaseModel { // @Ignore() public LicenseItems: IList; // @Ignore() public Prices: IList; // @Ignore() public IsFree: boolean; // @Ignore() public PeriodOfNoticeDays: number; // @Ignore() public NextLicenseOption: LicenseTypes; // @Required() public Name: string; // @Required() public Description: string; // @Required() public ExtraLicenseOption: boolean; public ModifiedDate?: string; public Active: boolean; public VossTierId: string; public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class License extends BaseModel { // @Ignore() public VossSubscription: VossSubscriptionResponse; // @Ignore() public Company: Company; public Type: LicenseTypes; // @Required() public CompanyId: string; public Id: number; // @Required() public TypeId: number; public VossSubscriptionId: string; // @Required() public ValidFrom: string; // @Required() public ValidTo: string; // @Required() public Active: boolean; // @Required() public UpdatedDate: string; // @Required() public CreatedDate: string; public ModifiedDate?: string; public MetaData?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } // @DataContract export class QueryResponse { // @DataMember(Order=1) public Offset: number; // @DataMember(Order=2) public Total: number; // @DataMember(Order=3) public Results: T[]; // @DataMember(Order=4) public Meta: { [index:string]: string; }; // @DataMember(Order=5) public ResponseStatus: ResponseStatus; public constructor(init?: Partial>) { (Object as any).assign(this, init); } } export class CompanyUserRolesQueryResponse { public RoleId: string; public Name: string; public Description: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CompanyUserResource { /** @description The resource id */ // @ApiMember(Description="The resource id") public Id: number; /** @description The resource name */ // @ApiMember(Description="The resource name") public Name: string; /** @description The resource status */ // @ApiMember(Description="The resource status") public Active: boolean; /** @description The resource description */ // @ApiMember(Description="The resource description") public Description: string; /** @description The resource email */ // @ApiMember(Description="The resource email") public Email: string; /** @description The resource phone */ // @ApiMember(Description="The resource phone") public Phone: string; /** @description The resource color */ // @ApiMember(Description="The resource color") public Color: string; /** @description The resource image */ // @ApiMember(Description="The resource image") public ImageUrl: string; /** @description If the resource want to receive email notifications */ // @ApiMember(Description="If the resource want to receive email notifications") public EmailNotification: boolean; /** @description If the resource want to receive sms notifications */ // @ApiMember(Description="If the resource want to receive sms notifications") public SMSNotification: boolean; /** @description If the resource want to receive email reminders */ // @ApiMember(Description="If the resource want to receive email reminders") public EmailReminder: boolean; /** @description If the resource want to receive sms reminders */ // @ApiMember(Description="If the resource want to receive sms reminders") public SMSReminder: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface IBaseModelCreated { CreatedDate: string; } export interface IBaseModelUpdated { UpdatedDate: string; } export interface ICustomFieldTable { CustomFieldsConfig: IList; CustomFieldsData: IList; 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; } export class CustomApiResult { public Data?: TResult; public Success: boolean; public ErrorMessage?: string; public StatusCode?: HttpStatusCode; public RawResponse?: string; public constructor(init?: Partial>) { (Object as any).assign(this, init); } } export interface IUser { Id: string; UserId: string; Email: string; Firstname: string; Lastname: string; Phone: string; } export class CompanyUserQueryResponse { public Id: string; public CompanyId: string; public Firstname: string; public Lastname: string; public Email: string; public Phone: string; public WorkerId: string; public ResourceId?: number; /** @description The resource information connected to the administrator. */ // @ApiMember(Description="The resource information connected to the administrator.") public Resource: CompanyUserResource; /** @description The roles that are connected to the administrator. */ // @ApiMember(Description="The roles that are connected to the administrator.") public Roles: CompanyUserRolesQueryResponse[] = []; /** @description If the admin should receive Push notification when booked */ // @ApiMember(Description="If the admin should receive Push notification when booked") public SendPushNotification: boolean; /** @description If the admin should receive Push notification reminders on bookings */ // @ApiMember(Description="If the admin should receive Push notification reminders on bookings") public SendPushNotificationReminder: boolean; public Active: boolean; public Created: string; public Updated: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/administrators/", "GET") // @ValidateRequest(Validator="IsAuthenticated") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) export class CompanyUserQuery extends QueryDb implements IReturn>, ICompany { /** @description The company id, if empty will use the company id for the user you are logged in with. */ // @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.") public CompanyId?: string; /** @description If you want to show only active or inactive administrators */ // @ApiMember(DataType="boolean", Description="If you want to show only active or inactive administrators", ParameterType="query") public Active?: boolean; /** @description If you want to include the connected resource for the administrator */ // @ApiMember(DataType="boolean", Description="If you want to include the connected resource for the administrator", ParameterType="query") public IncludeResourceInformation: boolean; /** @description If you want to include the connected roles for the administrator */ // @ApiMember(DataType="boolean", Description="If you want to include the connected roles for the administrator", ParameterType="query") public IncludeRolesInformation: boolean; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'CompanyUserQuery'; } public getMethod() { return 'GET'; } public createResponse() { return new QueryResponse(); } }