/* Options: Date: 2024-12-03 18:12:05 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CompanyQuery.* //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; } // @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 class BaseModel { public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CompanyCategory extends BaseModel { // @Required() public Name: string; // @Required() public Header: string; // @Required() public Description: string; public ImageUrl: string; // @Required() public Active: boolean; public SortOrder?: number; 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 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 ShowMultiDayAsTime: 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 PaymentSetting extends BaseModel { public AdminPaymentOption: AdminPaymentOptions; // @Ignore() public AdminPaymentOptions: AdminPaymentOptions[]; // @Ignore() public PaymentProviderOptions: PaymentProviders[]; // @Required() public Enabled: boolean; // @Required() public InvoiceFee: number; // @Required() public AllowCreditCardPayment: boolean; // @Required() public AllowInvoicePayment: boolean; // @Required() public AllowBankPayment: boolean; // @Required() public GuaranteeOffered: boolean; // @Required() public RefundOnCancelBooking: boolean; public DefaultPaymentOptionId?: number; // @Required() public PaymentProviderId: number; // @Required() public SendPaymentRequestDirectly: boolean; public ModifiedDate?: string; // @Required() public Id: 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 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 LicenseTypeItem extends BaseModel { // @Ignore() public Name: string; // @Ignore() public LicenseType: LicenseType; // @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 enum Currency { SEK = 1, EUR = 2, } 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; // @Ignore() public MonthlyPayment: boolean; // @Required() public LicenseTypeId: number; // @Required() public CountryId: string; // @Required() public Price: number; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class LicenseType extends BaseModel { // @Ignore() public LicenseItems: IList; // @Ignore() public Prices: IList; // @Ignore() public PeriodOfNoticeDays: number; // @Ignore() public NextLicenseOption: LicenseType; // @Required() public Name: string; // @Required() public Description: string; // @Required() public ExtraLicenseOption: boolean; public ModifiedDate?: string; public Active: boolean; public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class License extends BaseModel { public Type: LicenseType; // @Required() public CompanyId: string; public Id: number; // @Required() public TypeId: number; // @Required() public ValidFrom: string; // @Required() public ValidTo: string; // @Required() public Active: boolean; // @Required() public Updated: string; // @Required() public Created: string; public ModifiedDate?: string; public MetaData: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class ExternalReference extends BaseModel { // @Required() public CompanyId: string; // @Required() public Id: string; // @Required() public OwnerId: string; // @Required() public ReferenceType: string; public ExternalData: string; public CreatedBy: string; // @Required() public Updated: string; // @Required() public Created: 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: PaymentSetting; // @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 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; // @Required() public CompanyOwnerId: number; public TypeId?: number; public ModifiedDate?: string; // @Required() public Id: 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 RatingReviewResponse { /** @description The title for the review */ // @ApiMember(Description="The title for the review") public Title: string; /** @description The description for the review */ // @ApiMember(Description="The description for the review") public Description: string; /** @description The rating score */ // @ApiMember(Description="The rating score") public RatingScore: number; /** @description The review author */ // @ApiMember(Description="The review author") public Author: string; /** @description The created date */ // @ApiMember(Description="The created date") public Created: string; /** @description The review answer from the company */ // @ApiMember(Description="The review answer from the company") public ReviewAnswer: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CustomFieldValueResponse { public Value: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CustomFieldConfigData { /** @description Custom field id */ // @ApiMember(Description="Custom field id") public Id: number; /** @description Configuration name. Example: 'Number of persons'. */ // @ApiMember(Description="Configuration name. Example: 'Number of persons'.") public Name: string; /** @description Custom field description. Example: 'For how many persons is this booking?' */ // @ApiMember(Description="Custom field description. Example: 'For how many persons is this booking?'") public Description: string; /** @description Field width. Example: 20 for 20px */ // @ApiMember(Description="Field width. Example: 20 for 20px") public Width?: number; /** @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; /** @description Default value of the field. Example: '3' */ // @ApiMember(Description="Default value of the field. Example: '3'") public DefaultValue: string; /** @description Determines if the field is required to have a value or not */ // @ApiMember(Description="Determines if the field is required to have a value or not") public IsMandatory: boolean; /** @description Error message shown to the user if the field data is required but not entered */ // @ApiMember(Description="Error message shown to the user if the field data is required but not entered") public MandatoryErrorMessage: string; /** @description Max lenght of the field */ // @ApiMember(Description="Max lenght of the field") public MaxLength: number; /** @description If the field should have multiple lines */ // @ApiMember(Description="If the field should have multiple lines") public MultipleLineText: boolean; /** @description Regular expression used for validation of the field */ // @ApiMember(Description="Regular expression used for validation of the field") public RegEx: string; /** @description Error message shown if the regular expression validation failed */ // @ApiMember(Description="Error message shown if the regular expression validation failed") public RegExErrorMessage: string; /** @description The values to select from if Datatype is DropDown for this custom field */ // @ApiMember(Description="The values to select from if Datatype is DropDown for this custom field") public Values: CustomFieldValueResponse[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum CodeLockSystemType { Sample = 'Sample', RcoM5 = 'RcoM5', AxemaVaka = 'AxemaVaka', VanderbiltOmnis = 'VanderbiltOmnis', ParakeyParakey = 'ParakeyParakey', AmidoDax = 'AmidoDax', TelkeyTelkey = 'TelkeyTelkey', TechSolutionsSiedle = 'TechSolutionsSiedle', Accessy = 'Accessy', Zesec = 'Zesec', Enabla = 'Enabla', } export class CompanyBookingSettings { public EnableMobileApp: boolean; public BookingReceiptMessage: string; public ShowFreeTimesLeft: boolean; public EnableShowBookedTimes: boolean; public BookingAgreement: string; /** @description The settings for how to display week number. 1 = ShowWeekNumberFromDate, 2 = ShowWeekNumberToDate, 3 = ShowWeekNumberFromToDate, 4 = DontShowWeekNumber */ // @ApiMember(DataType="int", Description="The settings for how to display week number. 1 = ShowWeekNumberFromDate, 2 = ShowWeekNumberToDate, 3 = ShowWeekNumberFromToDate, 4 = DontShowWeekNumber ") public WeekNumberSetting: number; public ShowBookedTimes: boolean; /** @description The payment provider id. 1 = Payson Checkout 1.0, 2= Payson Checkout 2.0 ... To get the full payment provider for the company call GET /payment/settings */ // @ApiMember(Description="The payment provider id. 1 = Payson Checkout 1.0, 2= Payson Checkout 2.0 ... To get the full payment provider for the company call GET /payment/settings") public PaymentProviderId: number; /** @description If it's only allowed for existing customers to book */ // @ApiMember(DataType="boolean", Description="If it's only allowed for existing customers to book") public BookOnlyOnExistingCustomers: boolean; /** @description If payment is enabled */ // @ApiMember(DataType="boolean", Description="If payment is enabled") public PaymentEnabled: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CompanySystemSettings { /** @description If the booking is active or not */ // @ApiMember(DataType="bool", Description="If the booking is active or not") public Active: boolean; /** @description If the booking is not active, what message to show to the customers */ // @ApiMember(DataType="string", Description="If the booking is not active, what message to show to the customers") public InactiveMessage: string; /** @description If the company should be visible in search results on hompage */ // @ApiMember(DataType="bool", Description="If the company should be visible in search results on hompage") public Searchable: boolean; /** @description If you have a google analytics account and want to track your customers behaviors. */ // @ApiMember(DataType="string", Description="If you have a google analytics account and want to track your customers behaviors.") public GATrackingId: string; /** @description If you have a google Ads Conversion Id account and want to track your customers behaviors. */ // @ApiMember(DataType="string", Description="If you have a google Ads Conversion Id account and want to track your customers behaviors.") public GoogleAdsConversionId: string; /** @description If you have a LinkedIn account and want to track your customers behaviors. */ // @ApiMember(DataType="string", Description="If you have a LinkedIn account and want to track your customers behaviors.") public LinkedinTagId: string; /** @description If you have a Google Ads Conversion Label and want to track your customers behaviors. */ // @ApiMember(DataType="string", Description="If you have a Google Ads Conversion Label and want to track your customers behaviors.") public GoogleAdsConversionLabel: string; /** @description If you have a google tag manager account and want to track your customers behaviors. */ // @ApiMember(DataType="string", Description="If you have a google tag manager account and want to track your customers behaviors.") public GTMTrackingId: string; /** @description If you have a facebook account and want to track your customers behaviors. */ // @ApiMember(DataType="string", Description="If you have a facebook account and want to track your customers behaviors.") public FacebookPixelId: string; /** @description If you want your customers to be albe to change language on your homepage */ // @ApiMember(DataType="bool", Description="If you want your customers to be albe to change language on your homepage") public MultiLanguage: boolean; /** @description If the company should be visible on the marketplace */ // @ApiMember(DataType="bool", Description="If the company should be visible on the marketplace") public ShowOnMarketplace: boolean; /** @description If you want your own written text on your homepage to be translated using google analytics when a user changes language */ // @ApiMember(DataType="bool", Description="If you want your own written text on your homepage to be translated using google analytics when a user changes language") public EnableAPITranslation: boolean; /** @description What is the standard language your homepage information is written in. Select from the different countries, ie. SE,NO,EN */ // @ApiMember(DataType="string", Description="What is the standard language your homepage information is written in. Select from the different countries, ie. SE,NO,EN") public DefaultLanguage: string; /** @description If you want to allow to send customer information in the tracking events to the external providers. Note you as a company are responsible for informing your customers and handling the data in terms of GDPR. */ // @ApiMember(Description="If you want to allow to send customer information in the tracking events to the external providers. Note you as a company are responsible for informing your customers and handling the data in terms of GDPR. ") public SendCustomerInformationToExternalProviders: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CompanyWidgetSettings { /** @description The service layouts id. */ // @ApiMember(Description="The service layouts id.") public ServiceLayoutId: number; /** @description The time layouts id. */ // @ApiMember(Description="The time layouts id.") public TimeLayoutId: number; /** @description The booking layouts id. */ // @ApiMember(Description="The booking layouts id.") public BookingLayoutId: number; /** @description The primary color of the booking widget. */ // @ApiMember(Description="The primary color of the booking widget.") public PrimaryColor: string; /** @description If you should show the service image in the booking widget. */ // @ApiMember(Description="If you should show the service image in the booking widget.") public ShowServiceImage: boolean; /** @description If you should show the rebate code field in the booking widget. */ // @ApiMember(Description="If you should show the rebate code field in the booking widget.") public ShowRebateCodeField: boolean; /** @description If you should show the next available time in the booking widget. */ // @ApiMember(Description="If you should show the next available time in the booking widget.") public ShowNextAvailableTime: boolean; /** @description If you should show the end time in the booking widget. */ // @ApiMember(Description="If you should show the end time in the booking widget.") public ShowEndTime: boolean; /** @description What text to show on booked time slots. Default text is Booked */ // @ApiMember(Description="What text to show on booked time slots. Default text is Booked") public BookedTimeSlotText: string; /** @description If the widget should be displayed in dark theme */ // @ApiMember(Description="If the widget should be displayed in dark theme") public DarkTheme: boolean; /** @description If you should show the subscribe to newsletter checkbox in the booking widget. */ // @ApiMember(Description="If you should show the subscribe to newsletter checkbox in the booking widget.") public ShowSubscribeToNewsletter: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class HomepageSettingsResponse { /** @description The text for homepage heading */ // @ApiMember(Description="The text for homepage heading") public HomepageHeading: string; /** @description The text for homepage startpage heading */ // @ApiMember(Description="The text for homepage startpage heading") public WelcomePageHeading: string; /** @description The text for homepage startpage body */ // @ApiMember(Description="The text for homepage startpage body") public WelcomePageBody: string; /** @description The text for homepage about us page heading */ // @ApiMember(Description="The text for homepage about us page heading") public AboutUsPageHeading: string; /** @description The text for homepage about us page body */ // @ApiMember(Description="The text for homepage about us page body") public AboutUsPageBody: string; /** @description The startpage image url */ // @ApiMember(Description="The startpage image url") public ImageUrl: string; /** @description The cover image url */ // @ApiMember(Description="The cover image url") public CoverImage: string; /** @description Show rating on the page */ // @ApiMember(Description="Show rating on the page") public ShowRating: boolean; /** @description The template for the homepage */ // @ApiMember(Description="The template for the homepage") public HomePageTemplateId: number; /** @description The hero section style for the homepage */ // @ApiMember(Description="The hero section style for the homepage") public HeroSectionStyleId: number; /** @description Enable the BokaMera Homepage */ // @ApiMember(Description="Enable the BokaMera Homepage") public EnableHomepage: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CompanyRatingSummary { /** @description The average rating score */ // @ApiMember(Description="The average rating score") public AverageScore: number; /** @description The number of ratings of score 1 */ // @ApiMember(Description="The number of ratings of score 1") public RatingScore1Count: number; /** @description The number of ratings of score 2 */ // @ApiMember(Description="The number of ratings of score 2") public RatingScore2Count: number; /** @description The number of ratings of score 3 */ // @ApiMember(Description="The number of ratings of score 3") public RatingScore3Count: number; /** @description The number of ratings of score 4 */ // @ApiMember(Description="The number of ratings of score 4") public RaingScore4Count: number; /** @description The number of ratings of score 5 */ // @ApiMember(Description="The number of ratings of score 5") public RatingScore5Count: number; /** @description The number of ratings */ // @ApiMember(Description="The number of ratings") public Count: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CompanyQueryResponse { public Id: string; public Name: string; /** @description The organisation number will only be visible if your owner to the company */ // @ApiMember(DataType="string", Description="The organisation number will only be visible if your owner to the company") public OrganisationNumber: string; /** @description What type of company. If it's used for personal use or as a company. */ // @ApiMember(DataType="int", Description="What type of company. If it's used for personal use or as a company.") public TypeId?: number; public Details: string; public CategoryId: number; public Category: string; public LogoType: string; public CoverImage: string; public Street1: string; public Street2: string; public ZipCode: string; public City: string; public CountryId: string; public Longitude: string; public Latitude: string; public Distance?: number; public Phone: string; public Email: string; public Homepage: string; public SitePath: string; public Active: boolean; public CodeLockSystem?: CodeLockSystemType; public IsFreeAccount: boolean; /** @description Will show when the company was updated, note it will only be shown if your logged in as admin for the company. */ // @ApiMember(DataType="datetime", Description="Will show when the company was updated, note it will only be shown if your logged in as admin for the company.") public Updated?: string; /** @description Will show when the company was created, note it will only be shown if your logged in as admin for the company. */ // @ApiMember(DataType="datetime", Description="Will show when the company was created, note it will only be shown if your logged in as admin for the company.") public Created?: string; public StatusId: number; /** @description If the company is marked as favourite for the logged in user */ // @ApiMember(DataType="boolean", Description="If the company is marked as favourite for the logged in user") public IsFavorite: boolean; public BookingAgreements: string; public BookingSettings: CompanyBookingSettings; public SystemSettings: CompanySystemSettings; public WidgetSettings: CompanyWidgetSettings; public HomepageSettings: HomepageSettingsResponse; public RatingSummary: CompanyRatingSummary; public Reviews: RatingReviewResponse[]; public CustomerCustomFields: CustomFieldConfigData[]; public ResponseStatus: ResponseStatus; public constructor(init?: Partial) { (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: CompanyQueryResponse[]; // @DataMember(Order=4) public Meta: { [index: string]: string; }; // @DataMember(Order=5) public ResponseStatus: ResponseStatus; public constructor(init?: Partial>) { (Object as any).assign(this, init); } } // @Route("/companies", "GET") export class CompanyQuery extends QueryDb implements IReturn> { /** @description Id for a specific company you want to retrieve. */ // @ApiMember(Description="Id for a specific company you want to retrieve.", ParameterType="query") public Id?: string; /** @description Include companies in these categories. */ // @ApiMember(Description="Include companies in these categories.", ParameterType="query") public Categories: number[]; /** @description Search nearby this latitude coordinate. */ // @ApiMember(Description="Search nearby this latitude coordinate.", ParameterType="query") public Latitude?: number; /** @description Search nearby this longitude coordinate. */ // @ApiMember(Description="Search nearby this longitude coordinate.", ParameterType="query") public Longitude?: number; /** @description The site path url for the company homepage */ // @ApiMember(Description="The site path url for the company homepage", ParameterType="query") public SitePath: string; /** @description Search active companies. You're only allowed to search active companies. */ // @ApiMember(Description="Search active companies. You're only allowed to search active companies.", ParameterType="query") public Active: boolean; /** @description The organisation number for the company */ // @ApiMember(Description="The organisation number for the company", ParameterType="query") public OrganisationNumber: string; /** @description Maxium distance from the coordinates to be included in the result. */ // @ApiMember(Description="Maxium distance from the coordinates to be included in the result.", ParameterType="query") public Distance?: number; /** @description Will search by any company name or city that contains the search string provided. */ // @ApiMember(Description="Will search by any company name or city that contains the search string provided.", ParameterType="query") public Search: string; /** @description Will search by any company owner id. Default is 1 = BokaMera. */ // @ApiMember(Description="Will search by any company owner id. Default is 1 = BokaMera.", ParameterType="query") public CompanyOwnerId?: number; /** @description If you want to get the booking agreements loaded into the field BookingAgreements */ // @ApiMember(DataType="boolean", Description="If you want to get the booking agreements loaded into the field BookingAgreements", ParameterType="query") public IncludeBookingAgreements: boolean; /** @description If you want to get the code lock system used by the company */ // @ApiMember(DataType="boolean", Description="If you want to get the code lock system used by the company", ParameterType="query") public IncludeCodeLockSystem: boolean; /** @description If you want to get the booking settings loaded into the field BookingSettings */ // @ApiMember(DataType="boolean", Description="If you want to get the booking settings loaded into the field BookingSettings", ParameterType="query") public IncludeBookingSettings: boolean; /** @description If you want to get the system settings loaded into the field SystemSettings */ // @ApiMember(DataType="boolean", Description="If you want to get the system settings loaded into the field SystemSettings", ParameterType="query") public IncludeSystemSettings: boolean; /** @description If you want to get the widget settings loaded into the field WidgetSettings */ // @ApiMember(DataType="boolean", Description="If you want to get the widget settings loaded into the field WidgetSettings", ParameterType="query") public IncludeWidgetSettings: boolean; /** @description If you want to get the homepage settings loaded into the field HomepageSettings */ // @ApiMember(DataType="boolean", Description="If you want to get the homepage settings loaded into the field HomepageSettings", ParameterType="query") public IncludeHomepageSettings: boolean; /** @description If you want to include the connected custom fields for the customers */ // @ApiMember(DataType="boolean", Description="If you want to include the connected custom fields for the customers", ParameterType="query") public IncludeCustomerCustomFields: boolean; /** @description If you want to include the connected custom fields */ // @ApiMember(DataType="boolean", Description="If you want to include the connected custom fields", ParameterType="query") public IncludeCustomFields: boolean; /** @description If you want to include the rating reviews */ // @ApiMember(DataType="boolean", Description="If you want to include the rating reviews", ParameterType="query") public IncludeRatingReviews: boolean; /** @description If you want to include the rating summary */ // @ApiMember(DataType="boolean", Description="If you want to include the rating summary", ParameterType="query") public IncludeRatingSummary: boolean; public ResponseStatus: ResponseStatus; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'CompanyQuery'; } public getMethod() { return 'GET'; } public createResponse() { return new QueryResponse(); } }