BokaMera.API.Host

<back to all web services

ServiceQuery

The following routes are available for this service:
GET/services
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using BokaMera.API.ServiceModel.Dtos;
using BokaMera.API.ServiceModel.Db;
using BokaMera.API.ServiceModel.Interfaces;
using BokaMera.API.ServiceModel.Enums;
using ServiceStack.Data;
using BokaMera.API.ServiceModel.Helpers.Payment;
using QvicklyIntegration.Models.Checkout;
using QvicklyIntegration.Models.Common;
using QvicklyIntegration.Models.Payment;
using PaysonIntegrationCO2.Models;
using PaysonIntegrationCO2.Models.Enums;
using BokaMera.API.ServiceModel.Helpers.Payson1Payment;
using Microsoft.Extensions.Logging;

namespace BokaMera.API.ServiceModel.Db
{
    public partial class AdminPaymentOptions
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual int Id { get; set; }
    }

    public partial class Article
        : BaseModel, IBaseModelCreated, IBaseModelUpdated
    {
        public Article()
        {
            ArticleServiceRelations = new List<ArticleServiceRelation>{};
            ServiceIds = new List<int>{};
        }

        public virtual Company Company { get; set; }
        public virtual Currency CurrencyInfo { get; set; }
        public virtual List<ArticleServiceRelation> ArticleServiceRelations { get; set; }
        [Ignore]
        public virtual List<int> ServiceIds { get; set; }

        [Ignore]
        public virtual ArticleTypeEnum ArticleType { get; set; }

        [Ignore]
        public virtual string ArticleTypeName { get; set; }

        [Required]
        public virtual Guid CompanyId { get; set; }

        public virtual int Id { get; set; }
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual int ArticleTypeId { get; set; }

        public virtual string Description { get; set; }
        public virtual string ImageUrl { get; set; }
        [Required]
        public virtual bool Active { get; set; }

        [Required]
        public virtual int Amount { get; set; }

        [Required]
        public virtual double Price { get; set; }

        [Required]
        [StringLength(50)]
        public virtual string CurrencyId { get; set; }

        [Required]
        public virtual DateTime UpdatedDate { get; set; }

        [Required]
        public virtual DateTime CreatedDate { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class ArticleServiceRelation
        : BaseModel
    {
        [Required]
        public virtual Guid CompanyId { get; set; }

        public virtual int Id { get; set; }
        [Required]
        public virtual int ServiceId { get; set; }

        [Required]
        public virtual int ArticleId { get; set; }
    }

    public partial class AverageRatingScore
    {
        public virtual double AverageScore { get; set; }
        public virtual int Score1Count { get; set; }
        public virtual int Score2Count { get; set; }
        public virtual int Score3Count { get; set; }
        public virtual int Score4Count { get; set; }
        public virtual int Score5Count { get; set; }
        public virtual int Count { get; set; }
    }

    public partial class BaseModel
    {
    }

    public partial class Booking
        : PayableEntity, IInterval, ICustomFieldTable, IBaseModelUpdated, IBaseModelCreated
    {
        public Booking()
        {
            Log = new List<BookingLog>{};
            CheckoutLogs = new List<PaymentDetails>{};
            Prices = new List<BookingPrice>{};
            PriceMappings = new List<PriceMapping>{};
        }

        [Ignore]
        public virtual Service Service { get; set; }

        [Ignore]
        public virtual CalendarExport CalendarExport { get; set; }

        [Ignore]
        public virtual List<BookingLog> Log { get; set; }

        [Ignore]
        public virtual List<PaymentDetails> CheckoutLogs { get; set; }

        [Ignore]
        public virtual List<BookingPrice> Prices { get; set; }

        [Ignore]
        public virtual BookingStatusEnum Status { get; set; }

        [Ignore]
        public virtual bool IsReserved { get; set; }

        [Ignore]
        public virtual string StatusName { get; set; }

        public virtual Currency CurrencyInfo { get; set; }
        public virtual BookingStatus BookingStatus { get; set; }
        [Ignore]
        public virtual double? TotalPrice { get; set; }

        [Ignore]
        public virtual int? TotalSpots { get; set; }

        [Ignore]
        public virtual IList<Resource> Resources { get; set; }

        [Ignore]
        public virtual IList<ExternalReference> ExternalReferences { get; set; }

        [Ignore]
        public virtual IList<BookedResourceType> BookedResources { get; set; }

        [Ignore]
        public virtual IList<CustomFieldConfig> CustomFieldsConfig { get; set; }

        [Ignore]
        public virtual IList<CustomFieldDataResponse> CustomFieldsData { get; set; }

        [Ignore]
        public virtual Guid DeterministicId { get; set; }

        [Ignore]
        public virtual bool Active { get; set; }

        [Ignore]
        public virtual DateTime? LastTimeToUnBook { get; set; }

        [Ignore]
        public virtual List<PriceMapping> PriceMappings { get; set; }

        [Ignore]
        public virtual string InternalReferenceId { get; set; }

        [Required]
        public virtual DateTime UpdatedDate { get; set; }

        [Required]
        public virtual DateTime CreatedDate { get; set; }

        public virtual int Id { get; set; }
        [Required]
        public virtual Guid CustomerId { get; set; }

        [Required]
        public virtual int ServiceId { get; set; }

        [Required]
        public virtual int StatusId { get; set; }

        public virtual DateTime? UnbookedOn { get; set; }
        public virtual string UnbookedComments { get; set; }
        public virtual string BookedComments { get; set; }
        [Required]
        public virtual string BookedBy { get; set; }

        public virtual string UnBookedBy { get; set; }
        [Required]
        public virtual bool SendSmsReminder { get; set; }

        [Required]
        public virtual bool SendEmailReminder { get; set; }

        [Required]
        public virtual bool SendSmsConfirmation { get; set; }

        public virtual string RebateCode { get; set; }
        public virtual string Comments { get; set; }
        public virtual string IpAddress { get; set; }
        [Required]
        public virtual int NumberOfBookedSpots { get; set; }

        public virtual string CommentsToCustomer { get; set; }
        public virtual DateTime? PaymentExpiration { get; set; }
        [Required]
        public virtual bool SendEmailConfirmation { get; set; }

        public virtual string CancellationCode { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual string RatingCode { get; set; }
        public virtual string TextField1 { get; set; }
        public virtual string TextField2 { get; set; }
        public virtual string TextField3 { get; set; }
        public virtual string TextField4 { get; set; }
        public virtual string TextField5 { get; set; }
        public virtual string TextField6 { get; set; }
        public virtual string TextField7 { get; set; }
        public virtual string TextField8 { get; set; }
        public virtual string TextField9 { get; set; }
        public virtual string TextField10 { get; set; }
        public virtual string TextField11 { get; set; }
        public virtual string TextField12 { get; set; }
        public virtual string TextField13 { get; set; }
        public virtual string TextField14 { get; set; }
        public virtual string TextField15 { get; set; }
        public virtual string TextField16 { get; set; }
        public virtual string TextField17 { get; set; }
        public virtual string TextField18 { get; set; }
        public virtual string TextField19 { get; set; }
        public virtual string TextField20 { get; set; }
        [Required]
        public virtual DateTime From { get; set; }

        [Required]
        public virtual DateTime To { get; set; }
    }

    public partial class BookingLog
        : BaseModel
    {
        [References(typeof(BokaMera.API.ServiceModel.Db.BookingLogEventType))]
        public virtual int EventTypeId { get; set; }

        public virtual BookingLogEventType EventType { get; set; }
        [Required]
        public virtual Guid CompanyId { get; set; }

        [Required]
        public virtual int BookingId { get; set; }

        public virtual int Id { get; set; }
        public virtual string Comments { get; set; }
        public virtual string UserId { get; set; }
        [Required]
        public virtual DateTime Created { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class BookingLogEventType
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual int Id { get; set; }
    }

    public partial class BookingPrice
        : BaseModel
    {
        public BookingPrice()
        {
            AppliedCodes = new List<AppliedRebateCodes>{};
        }

        [References(typeof(BokaMera.API.ServiceModel.Db.Currency))]
        public virtual string CurrencyId { get; set; }

        public virtual int? PriceId { get; set; }
        public virtual Currency CurrencyInfo { get; set; }
        [Ignore]
        public virtual string PriceText { get; set; }

        [Ignore]
        public virtual List<AppliedRebateCodes> AppliedCodes { get; set; }

        [Ignore]
        public virtual bool IsRebate { get; set; }

        [Required]
        public virtual Guid CompanyId { get; set; }

        [Required]
        public virtual int BookingId { get; set; }

        [Required]
        public virtual int Quantity { get; set; }

        public virtual double? Price { get; set; }
        public virtual decimal? VAT { get; set; }
        public virtual string Category { get; set; }
        [Required]
        public virtual DateTime Updated { get; set; }

        [Required]
        public virtual DateTime Created { get; set; }

        [Required]
        public virtual bool Invoiced { get; set; }

        [Required]
        public virtual bool OccupiesSpot { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class BookingSettings
        : BaseModel
    {
        public BookingSettings()
        {
            ScheduleViewOptions = new List<ScheduleView>{};
            WeekNumberSettingOptions = new List<WeekNumberSetting>{};
            BookingTemplateOptions = new List<BookingTemplate>{};
            CalendarTypeOptions = new List<CalendarType>{};
            FreeSpotTextOptions = new List<FreeSpotTexts>{};
            BookingStatusOptions = new List<BookingStatusOptions>{};
        }

        [References(typeof(BokaMera.API.ServiceModel.Db.FreeSpotTexts))]
        public virtual int FreeSpotTextsId { get; set; }

        [Ignore]
        public virtual bool SendEmailConfirmation { get; set; }

        [Ignore]
        public virtual List<ScheduleView> ScheduleViewOptions { get; set; }

        [Ignore]
        public virtual List<WeekNumberSetting> WeekNumberSettingOptions { get; set; }

        [Ignore]
        public virtual List<BookingTemplate> BookingTemplateOptions { get; set; }

        [Ignore]
        public virtual List<CalendarType> CalendarTypeOptions { get; set; }

        [Ignore]
        public virtual List<FreeSpotTexts> FreeSpotTextOptions { get; set; }

        [Ignore]
        public virtual List<BookingStatusOptions> BookingStatusOptions { get; set; }

        public virtual FreeSpotTexts FreeSpotTextsInfo { get; set; }
        [Ignore]
        public virtual string FreeSpotsTextSingular { get; set; }

        [Ignore]
        public virtual string FreeSpotsTextPlural { get; set; }

        [Required]
        public virtual int BookingStatusId { get; set; }

        [Required]
        public virtual int ScheduleViewId { get; set; }

        [Required]
        public virtual int BookingTemplateId { get; set; }

        [Required]
        public virtual int CalendarTypeId { get; set; }

        [Required]
        public virtual bool AllowBookingOnUnbookedTimes { get; set; }

        [Required]
        public virtual bool SendEmailReminder { get; set; }

        [Required]
        public virtual bool SendSmsReminder { get; set; }

        [Required]
        public virtual bool SendSmsConfirmation { get; set; }

        [Required]
        public virtual int EmailReminderTime { get; set; }

        [Required]
        public virtual int SmsReminderTime { get; set; }

        [Required]
        public virtual int MaxActiveBookings { get; set; }

        [Required]
        public virtual bool SendNotifications { get; set; }

        public virtual string SendNotificationsEmail { get; set; }
        [Required]
        public virtual bool EnableMobileApp { get; set; }

        public virtual TimeSpan? ScheduleStartTime { get; set; }
        public virtual TimeSpan? ScheduleEndTime { get; set; }
        public virtual string ReceiptTemplate { get; set; }
        [Required]
        public virtual int ScheduleTimeSlotMinutes { get; set; }

        [Required]
        public virtual bool ShowFreeTimesLeft { get; set; }

        [Required]
        public virtual bool EnableICalGroupBookings { get; set; }

        public virtual string AgreementTemplate { get; set; }
        [Required]
        public virtual bool ScheduleShowTimeExeptions { get; set; }

        [Required]
        public virtual bool EnableBookingsOnSameTime { get; set; }

        [Required]
        public virtual int ShowWeekNumberSettingId { get; set; }

        [Required]
        public virtual bool EnableShowBookedTimes { get; set; }

        [Required]
        public virtual bool EnableSendFollowUpMessage { get; set; }

        [Required]
        public virtual int FollowUpMessageTime { get; set; }

        public virtual string MessageText { get; set; }
        [Required]
        public virtual bool ScheduleGroupResources { get; set; }

        [Required]
        public virtual int BookSpotUserResponseMinutes { get; set; }

        [Required]
        public virtual bool IsBookSpotDirectly { get; set; }

        [Required]
        public virtual int BookSpotDirectlyTimeLeftMinutes { get; set; }

        [Required]
        public virtual bool SendEmailNotificationQueue { get; set; }

        [Required]
        public virtual bool SendSMSNotificationQueue { get; set; }

        [Required]
        public virtual bool SchedulerDisableHorizontalScrolling { get; set; }

        [Required]
        public virtual bool BookOnlyOnExistingCustomers { get; set; }

        [Required]
        public virtual bool AutoGenerateUniquePinCode { get; set; }

        [Required]
        public virtual bool WeightedPrices { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual bool AutoCreateUserProfile { get; set; }

        public virtual bool ShowMultipleResourcesAsOne { get; set; }
        public virtual bool ShowMultiDayAsTime { get; set; }
        [Required]
        public virtual Guid Id { get; set; }
    }

    public partial class BookingStatus
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        [Required]
        public virtual string Color { get; set; }

        [Required]
        public virtual string Icon { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class BookingStatusOptions
    {
        public virtual int Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string Description { get; set; }
    }

    public partial class BookingTemplate
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        [Required]
        public virtual string UsedByApplication { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class CalendarExport
        : BaseModel
    {
        [Required]
        public virtual Guid CompanyId { get; set; }

        [Required]
        public virtual int BookingId { get; set; }

        [Required]
        public virtual int ExceptionId { get; set; }

        public virtual bool? CalendarSync { get; set; }
        public virtual string CalendarId { get; set; }
        public virtual bool? IsExceptionDeleted { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class CalendarType
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        [Required]
        public virtual bool Active { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class CodeLockSetting
        : BaseModel
    {
        public CodeLockSetting()
        {
            CodeLockSystemOptions = new List<CodeLockSystem>{};
        }

        [Ignore]
        public virtual List<CodeLockSystem> CodeLockSystemOptions { get; set; }

        [Required]
        public virtual bool Active { get; set; }

        [Required]
        public virtual int CodeLockSystemsId { get; set; }

        [Required]
        public virtual int ValidBeforeMinutes { get; set; }

        [Required]
        public virtual int ValidAfterMinutes { get; set; }

        [Required]
        public virtual bool DeleteOldBySchedule { get; set; }

        [Required]
        public virtual DateTime Created { get; set; }

        [Required]
        public virtual DateTime Updated { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual bool SendEmailNotification { get; set; }

        [Required]
        public virtual bool SendSMSNotification { get; set; }

        [Required]
        public virtual short EmailNotificationTime { get; set; }

        [Required]
        public virtual short SMSNotificationTime { get; set; }

        [Required]
        public virtual Guid Id { get; set; }
    }

    public partial class CodeLockSystem
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Supplier { get; set; }

        public virtual string LogoType { get; set; }
        [Required]
        public virtual string Description { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual int Id { get; set; }
    }

    public partial class Company
        : BaseModel
    {
        public Company()
        {
            Ratings = new List<Rating>{};
            Licenses = new List<License>{};
            ActiveLicenses = new List<License>{};
        }

        [Ignore]
        public virtual CompanyStatus Status { get; set; }

        [Ignore]
        public virtual bool Active { get; set; }

        [Ignore]
        public virtual IList<CustomFieldConfig> CustomerCustomFieldsConfig { get; set; }

        [Ignore]
        public virtual string BookingAgreements { get; set; }

        [Ignore]
        public virtual BookingSettings BookingSettings { get; set; }

        [Ignore]
        public virtual CompanyType CompanyType { get; set; }

        [Ignore]
        public virtual CodeLockSetting CodeLockSettings { get; set; }

        [Ignore]
        public virtual PaymentSetting PaymentSettings { get; set; }

        [Ignore]
        public virtual CompanySetting Settings { get; set; }

        [Ignore]
        public virtual HomepageWidgetSetting WidgetSettings { get; set; }

        [Ignore]
        public virtual HomepageSetting HomepageSettings { get; set; }

        [Ignore]
        public virtual AverageRatingScore RatingScore { get; set; }

        [Ignore]
        public virtual List<Rating> Ratings { get; set; }

        [Ignore]
        public virtual double? Distance { get; set; }

        [Ignore]
        public virtual List<License> Licenses { get; set; }

        [Ignore]
        public virtual List<License> ActiveLicenses { get; set; }

        [Ignore]
        public virtual License CurrentLicense { get; set; }

        [Ignore]
        public virtual bool IsFreeAccount { get; set; }

        [Ignore]
        public virtual CultureInfo DefaultLanguage { get; set; }

        public virtual CompanyCategory Category { get; set; }
        [Ignore]
        public virtual double Lat { get; set; }

        [Ignore]
        public virtual double Lon { get; set; }

        [Ignore]
        public virtual bool IsFavorite { get; set; }

        [Ignore]
        public virtual IList<ExternalReference> ExternalReferences { get; set; }

        [Required]
        public virtual string OrganisationNumber { get; set; }

        [Required]
        public virtual int StatusId { get; set; }

        [Required]
        public virtual int CategoryId { get; set; }

        [Required]
        public virtual string SitePath { get; set; }

        [Required]
        public virtual string Name { get; set; }

        public virtual string Street1 { get; set; }
        public virtual string Street2 { get; set; }
        public virtual string ZipCode { get; set; }
        public virtual string City { get; set; }
        public virtual string OpeningHours { get; set; }
        public virtual string FaxNumber { get; set; }
        [Required]
        public virtual string Email { get; set; }

        public virtual string Phone { get; set; }
        public virtual string Details { get; set; }
        public virtual string LogoType { get; set; }
        [Required]
        public virtual bool ApprovedByAdmin { get; set; }

        [Required]
        public virtual DateTime Updated { get; set; }

        [Required]
        public virtual DateTime Created { get; set; }

        public virtual string IpAddress { get; set; }
        public virtual string Homepage { get; set; }
        public virtual string DomainName { get; set; }
        [Required]
        public virtual string CountryId { get; set; }

        [Required]
        public virtual int CompanyOwnerId { get; set; }

        public virtual int? TypeId { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual Guid Id { get; set; }
    }

    public partial class CompanyCategory
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Header { get; set; }

        [Required]
        public virtual string Description { get; set; }

        public virtual Uri ImageUrl { get; set; }
        [Required]
        public virtual bool Active { get; set; }

        public virtual int? SortOrder { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class CompanySetting
        : BaseModel
    {
        public CompanySetting()
        {
            Languages = new List<LanguageResponse>{};
        }

        [Ignore]
        public virtual List<LanguageResponse> Languages { get; set; }

        [Required]
        public virtual bool Active { get; set; }

        public virtual string InactiveMessage { get; set; }
        [Required]
        public virtual bool Searchable { get; set; }

        public virtual string GATrackingId { get; set; }
        public virtual string FacebookPixelId { get; set; }
        [Required]
        public virtual bool MultiLanguage { get; set; }

        [Required]
        public virtual bool EnableAPITranslation { get; set; }

        [Required]
        public virtual string DefaultLanguage { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual string GTMTrackingId { get; set; }
        [Required]
        public virtual bool ShowOnMarketPlace { get; set; }

        public virtual string GoogleAdsConversionId { get; set; }
        public virtual string LinkedinTagId { get; set; }
        public virtual string GoogleAdsConversionLabel { get; set; }
        public virtual bool SendCustomerInformationToExternalProviders { get; set; }
        [Required]
        public virtual Guid Id { get; set; }
    }

    public partial class CompanyType
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual int Id { get; set; }
    }

    public partial class Country
        : BaseModel
    {
        [References(typeof(BokaMera.API.ServiceModel.Db.Currency))]
        public virtual string CurrencyId { get; set; }

        public virtual Currency CurrencyInfo { get; set; }
        [Required]
        public virtual string Name { get; set; }

        public virtual string Culture { get; set; }
        public virtual string TimeZone { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual string Id { get; set; }
    }

    public partial class Currency
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string CurrencySign { get; set; }

        [Required]
        public virtual bool Active { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual string Id { get; set; }
    }

    public partial class Customer
        : BaseModel, IUser, ICustomFieldTable
    {
        public virtual int IdentityId { get; set; }
        public virtual Guid Id { get; set; }
        [Ignore]
        public virtual Guid CustomerId { get; set; }

        [Ignore]
        public virtual IList<UserAccessKeys> AccessKeys { get; set; }

        public virtual string Email { get; set; }
        [Ignore]
        public virtual IList<ExternalReference> ExternalReferences { get; set; }

        [Ignore]
        public virtual Company Company { get; set; }

        [Ignore]
        public virtual IList<CustomFieldConfig> CustomFieldsConfig { get; set; }

        [Ignore]
        public virtual IList<CustomFieldDataResponse> CustomFieldsData { get; set; }

        [Ignore]
        public virtual IList<CustomerComment> Comments { get; set; }

        [Ignore]
        public virtual IList<RebateCode> RebateCodes { get; set; }

        public virtual string Firstname { get; set; }
        [Ignore]
        public virtual string ImageUrl { get; set; }

        [Required]
        public virtual bool Active { get; set; }

        public virtual string FacebookUsername { get; set; }
        [Required]
        public virtual DateTime Updated { get; set; }

        [Required]
        public virtual DateTime Created { get; set; }

        public virtual string IpAddress { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual string TextField1 { get; set; }
        public virtual string TextField2 { get; set; }
        public virtual string TextField3 { get; set; }
        public virtual string TextField4 { get; set; }
        public virtual string TextField5 { get; set; }
        public virtual string TextField6 { get; set; }
        public virtual string TextField7 { get; set; }
        public virtual string TextField8 { get; set; }
        public virtual string TextField9 { get; set; }
        public virtual string TextField10 { get; set; }
        public virtual string TextField11 { get; set; }
        public virtual string TextField12 { get; set; }
        public virtual string TextField13 { get; set; }
        public virtual string TextField14 { get; set; }
        public virtual string TextField15 { get; set; }
        public virtual string TextField16 { get; set; }
        public virtual string TextField17 { get; set; }
        public virtual string TextField18 { get; set; }
        public virtual string TextField19 { get; set; }
        public virtual string TextField20 { get; set; }
        public virtual Guid UserId { get; set; }
        public virtual string Lastname { get; set; }
        public virtual string Phone { get; set; }
        public virtual string CorporateIdentityNumber { get; set; }
        public virtual string InvoiceAddress1 { get; set; }
        public virtual string InvoiceAddress2 { get; set; }
        public virtual string InvoiceCity { get; set; }
        public virtual string InvoicePostalCode { get; set; }
        public virtual string InvoiceCountryCode { get; set; }
        [Required]
        public virtual Guid CompanyId { get; set; }

        public virtual bool SubscribedToNewsletter { get; set; }
    }

    public partial class CustomerComment
        : BaseModel
    {
        [Required]
        public virtual Guid CompanyId { get; set; }

        public virtual int Id { get; set; }
        [Required]
        public virtual Guid CustomerId { get; set; }

        [Required]
        public virtual string Comments { get; set; }

        [Required]
        public virtual DateTime Updated { get; set; }

        [Required]
        public virtual DateTime Created { get; set; }

        public virtual string ImageUrl { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class CustomField
        : BaseModel
    {
        [Required]
        public virtual string Table { get; set; }

        [Required]
        public virtual string Column { get; set; }

        [Required]
        public virtual string DataType { get; set; }

        [Required]
        public virtual string Description { get; set; }

        [Required]
        public virtual bool Active { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class CustomFieldConfig
        : BaseModel
    {
        public CustomFieldConfig()
        {
            Values = new List<CustomFieldValue>{};
            Services = new List<Service>{};
            CustomFieldServiceRelation = new List<CustomFieldServiceRelation>{};
        }

        [Ignore]
        public virtual List<CustomFieldValue> Values { get; set; }

        public virtual CustomField CustomField { get; set; }
        [Ignore]
        public virtual RegEx RegEx { get; set; }

        [Ignore]
        public virtual List<Service> Services { get; set; }

        public virtual List<CustomFieldServiceRelation> CustomFieldServiceRelation { get; set; }
        [Required]
        public virtual Guid CompanyId { get; set; }

        public virtual int Id { get; set; }
        public virtual int? GroupId { get; set; }
        [Required]
        public virtual int FieldId { get; set; }

        [Required]
        public virtual int IconId { get; set; }

        public virtual int? RegExId { get; set; }
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        [Required]
        public virtual string Datatype { get; set; }

        [Required]
        public virtual int MaxLength { get; set; }

        [Required]
        public virtual bool IsPublic { get; set; }

        [Required]
        public virtual bool IsHidden { get; set; }

        [Required]
        public virtual bool IsMandatory { get; set; }

        public virtual string DefaultValue { get; set; }
        public virtual string RegExErrorMessage { get; set; }
        public virtual string MandatoryErrorMessage { get; set; }
        public virtual int? Width { get; set; }
        [Required]
        public virtual bool MultipleLineText { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class CustomFieldServiceRelation
        : BaseModel
    {
        [Required]
        public virtual Guid CompanyId { get; set; }

        public virtual int Id { get; set; }
        [Required]
        public virtual int CustomFieldConfigId { get; set; }

        [Required]
        public virtual int ServiceId { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class CustomFieldValue
        : BaseModel
    {
        [Required]
        public virtual Guid CompanyId { get; set; }

        public virtual int Id { get; set; }
        [Required]
        public virtual string Value { get; set; }

        [Required]
        public virtual bool Active { get; set; }

        public virtual short? SortOrder { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class DaysOfWeek
        : BaseModel
    {
        [Required]
        public virtual string DayOfWeek { get; set; }

        [Required]
        public virtual string DayOfWeekTranslation { get; set; }

        public virtual bool? DayOfWeekActive { get; set; }
        public virtual short? DayOfWeekSortOrder { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class ExternalReference
        : BaseModel
    {
        [Required]
        public virtual Guid CompanyId { get; set; }

        [Required]
        public virtual Guid Id { get; set; }

        [Required]
        public virtual Guid OwnerId { get; set; }

        [Required]
        public virtual string ReferenceType { get; set; }

        public virtual string ExternalData { get; set; }
        public virtual string CreatedBy { get; set; }
        [Required]
        public virtual DateTime Updated { get; set; }

        [Required]
        public virtual DateTime Created { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class FreeSpotTexts
        : BaseModel
    {
        [Required]
        public virtual string TextSingular { get; set; }

        [Required]
        public virtual string TextPlural { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual int Id { get; set; }
    }

    public partial class HeroSectionStyle
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        public virtual string Description { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual int Id { get; set; }
    }

    public partial class HomepageSetting
        : BaseModel, ICompany
    {
        public HomepageSetting()
        {
            HomepageTemplateOptions = new List<HomepageTemplate>{};
            HomepageHeroSectionStyleOptions = new List<HeroSectionStyle>{};
        }

        [Ignore]
        public virtual List<HomepageTemplate> HomepageTemplateOptions { get; set; }

        [Ignore]
        public virtual List<HeroSectionStyle> HomepageHeroSectionStyleOptions { get; set; }

        [Ignore]
        public virtual Guid? CompanyId { get; set; }

        public virtual string WelcomePageHeading { get; set; }
        public virtual string WelcomePageBody { get; set; }
        public virtual string AboutUsPageHeading { get; set; }
        public virtual string AboutUsPageBody { get; set; }
        [Required]
        public virtual int HomePageTemplateId { get; set; }

        public virtual string ImageUrl { get; set; }
        [Required]
        public virtual DateTime Updated { get; set; }

        [Required]
        public virtual DateTime Created { get; set; }

        public virtual string HomepageHeading { get; set; }
        [Required]
        public virtual int HeroSectionStyleId { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual bool ShowRating { get; set; }

        [Required]
        public virtual bool EnableHomepage { get; set; }

        [Required]
        public virtual Guid Id { get; set; }
    }

    public partial class HomepageTemplate
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        public virtual Uri ImageUrl { get; set; }
        [Required]
        public virtual bool Premium { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class HomepageWidgetSetting
        : BaseModel
    {
        public HomepageWidgetSetting()
        {
            WidgetServiceLayoutOptions = new List<WidgetServiceLayouts>{};
            WidgetTimeLayoutOptions = new List<WidgetTimeLayouts>{};
            WidgetBookingLayoutOptions = new List<WidgetBookingLayouts>{};
            WidgetBookingMethodOptions = new List<WidgetBookingMethods>{};
        }

        [Ignore]
        public virtual List<WidgetServiceLayouts> WidgetServiceLayoutOptions { get; set; }

        [Ignore]
        public virtual List<WidgetTimeLayouts> WidgetTimeLayoutOptions { get; set; }

        [Ignore]
        public virtual List<WidgetBookingLayouts> WidgetBookingLayoutOptions { get; set; }

        [Ignore]
        public virtual List<WidgetBookingMethods> WidgetBookingMethodOptions { get; set; }

        [Required]
        public virtual int ServiceLayoutId { get; set; }

        [Required]
        public virtual int TimeLayoutId { get; set; }

        [Required]
        public virtual int BookingLayoutId { get; set; }

        [Required]
        public virtual string PrimaryColor { get; set; }

        [Required]
        public virtual bool ShowServiceImage { get; set; }

        [Required]
        public virtual bool ShowNextAvailableTime { get; set; }

        [Required]
        public virtual bool ShowEndTime { get; set; }

        public virtual string BookedTimeSlotText { get; set; }
        [Required]
        public virtual bool DarkTheme { get; set; }

        [Required]
        public virtual bool ShowRebateCodeField { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual bool EnableCreateAccount { get; set; }

        [Required]
        public virtual bool EnableLogin { get; set; }

        [Required]
        public virtual bool EnableDirectBooking { get; set; }

        [Required]
        public virtual bool EnableFacebookLogin { get; set; }

        [Required]
        public virtual bool ShowSubscribeToNewsletter { get; set; }

        [Required]
        public virtual Guid Id { get; set; }
    }

    public partial class License
        : BaseModel
    {
        public virtual LicenseType Type { get; set; }
        [Required]
        public virtual Guid CompanyId { get; set; }

        public virtual int Id { get; set; }
        [Required]
        public virtual int TypeId { get; set; }

        [Required]
        public virtual DateTime ValidFrom { get; set; }

        [Required]
        public virtual DateTime ValidTo { get; set; }

        [Required]
        public virtual bool Active { get; set; }

        [Required]
        public virtual DateTime Updated { get; set; }

        [Required]
        public virtual DateTime Created { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual string MetaData { get; set; }
    }

    public partial class LicensePrice
        : BaseModel
    {
        [Ignore]
        public virtual Country Country { get; set; }

        [Ignore]
        public virtual bool MonthlyPayment { get; set; }

        [Required]
        public virtual int LicenseTypeId { get; set; }

        [Required]
        public virtual string CountryId { get; set; }

        [Required]
        public virtual int Price { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class LicenseType
        : BaseModel
    {
        [Ignore]
        public virtual IList<LicenseTypeItem> LicenseItems { get; set; }

        [Ignore]
        public virtual IList<LicensePrice> Prices { get; set; }

        [Ignore]
        public virtual int PeriodOfNoticeDays { get; set; }

        [Ignore]
        public virtual LicenseType NextLicenseOption { get; set; }

        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        [Required]
        public virtual bool ExtraLicenseOption { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual bool Active { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class LicenseTypeItem
        : BaseModel
    {
        [Ignore]
        public virtual string Name { get; set; }

        [Ignore]
        public virtual LicenseType LicenseType { get; set; }

        [Required]
        public virtual int LicenseTypesId { get; set; }

        [Required]
        public virtual int LicenseItemsId { get; set; }

        [Required]
        public virtual int NumberOfItems { get; set; }

        public virtual int Id { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class PayableEntity
        : BaseModel, IPayableEntity
    {
        public PayableEntity()
        {
            PaymentLog = new List<PaymentLog>{};
            Customers = new List<Customer>{};
        }

        [Ignore]
        public virtual IDbConnectionFactory DbFactory { get; set; }

        [Ignore]
        public virtual IBokameraPaymentManager<InitCheckoutRequestBody, QvicklyCheckoutResponse, QvicklyPaymentResponse> QvicklyPaymentManager { get; set; }

        [Ignore]
        public virtual IBokameraPaymentManager<Payson2CheckoutResponse, Payson2CheckoutResponse, Payson2CheckoutResponse> Payson2PaymentManager { get; set; }

        [Ignore]
        public virtual IPaysonPaymentCheckout1 PaysonPaymentCheckout1 { get; set; }

        [Ignore]
        public virtual ILogger<PayableEntity> Logger { get; set; }

        [Ignore]
        public virtual string InternalReferenceId { get; set; }

        [Ignore]
        public virtual List<PaymentLog> PaymentLog { get; set; }

        public virtual Guid CompanyId { get; set; }
        public virtual decimal? PriceVat { get; set; }
        [References(typeof(BokaMera.API.ServiceModel.Db.Currency))]
        public virtual string CurrencyId { get; set; }

        [Ignore]
        public virtual Customer Customer { get; set; }

        [Ignore]
        public virtual List<Customer> Customers { get; set; }

        [Ignore]
        public virtual Company Company { get; set; }
    }

    public partial class PaymentDetails
        : BaseModel, IBaseModelCreated, IBaseModelUpdated
    {
        [Ignore]
        public virtual QvicklyCheckoutResponse QvicklyCheckoutSerialized { get; set; }

        [Ignore]
        public virtual Payson2CheckoutResponse Payson2CheckoutSerialized { get; set; }

        [Required]
        public virtual Guid CompanyId { get; set; }

        [Required]
        public virtual string InternalReferenceId { get; set; }

        [Required]
        public virtual int ArticleTypeId { get; set; }

        [Required]
        public virtual string ExternalResponseData { get; set; }

        [Required]
        public virtual string ExternalResponseReference { get; set; }

        [Required]
        public virtual int PaymentProviderId { get; set; }

        [Required]
        public virtual DateTime CreatedDate { get; set; }

        [Required]
        public virtual DateTime UpdatedDate { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class PaymentLog
        : BaseModel
    {
        [References(typeof(BokaMera.API.ServiceModel.Db.Currency))]
        public virtual string CurrencyId { get; set; }

        public virtual Currency CurrencyInfo { get; set; }
        [Required]
        public virtual Guid CompanyId { get; set; }

        public virtual int Id { get; set; }
        [Required]
        public virtual string InternalReferenceId { get; set; }

        [Required]
        public virtual int ArticleTypeId { get; set; }

        public virtual string PaymentReferenceId { get; set; }
        public virtual int? PaymentProviderId { get; set; }
        public virtual string OrderItemReferenceId { get; set; }
        public virtual double? Amount { get; set; }
        public virtual decimal? VAT { get; set; }
        public virtual double? AmountCredited { get; set; }
        public virtual string Comments { get; set; }
        [Required]
        public virtual DateTime Created { get; set; }

        [Required]
        public virtual DateTime Updated { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class PaymentProviders
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        [Required]
        public virtual string Category { get; set; }

        public virtual string Url { get; set; }
        [Required]
        public virtual bool Active { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual int Id { get; set; }
    }

    public partial class PaymentSetting
        : BaseModel
    {
        public PaymentSetting()
        {
            AdminPaymentOptions = new List<AdminPaymentOptions>{};
            PaymentProviderOptions = new List<PaymentProviders>{};
        }

        public virtual AdminPaymentOptions AdminPaymentOption { get; set; }
        [Ignore]
        public virtual List<AdminPaymentOptions> AdminPaymentOptions { get; set; }

        [Ignore]
        public virtual List<PaymentProviders> PaymentProviderOptions { get; set; }

        [Required]
        public virtual bool Enabled { get; set; }

        [Required]
        public virtual int InvoiceFee { get; set; }

        [Required]
        public virtual bool AllowCreditCardPayment { get; set; }

        [Required]
        public virtual bool AllowInvoicePayment { get; set; }

        [Required]
        public virtual bool AllowBankPayment { get; set; }

        [Required]
        public virtual bool GuaranteeOffered { get; set; }

        [Required]
        public virtual bool RefundOnCancelBooking { get; set; }

        public virtual int? DefaultPaymentOptionId { get; set; }
        [Required]
        public virtual int PaymentProviderId { get; set; }

        [Required]
        public virtual bool SendPaymentRequestDirectly { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual Guid Id { get; set; }
    }

    public partial class PriceMapping
        : BaseModel
    {
        [Required]
        public virtual Guid CompanyId { get; set; }

        [Required]
        public virtual Guid Id { get; set; }

        [Required]
        public virtual int PriceId { get; set; }

        public virtual string ReferenceType { get; set; }
        public virtual string ExternalReference { get; set; }
        [Required]
        public virtual DateTime UpdatedDate { get; set; }

        [Required]
        public virtual DateTime CreatedDate { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class Rating
        : BaseModel
    {
        public virtual Guid? ReviewId { get; set; }
        public virtual Review Review { get; set; }
        [Required]
        public virtual Guid CompanyId { get; set; }

        [Required]
        public virtual int BookingId { get; set; }

        [Required]
        public virtual int RatingScore { get; set; }

        [Required]
        public virtual int Status { get; set; }

        [Required]
        public virtual DateTime Created { get; set; }

        [Required]
        public virtual DateTime Updated { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class RebateCode
        : PayableEntity
    {
        public RebateCode()
        {
            Services = new List<Service>{};
            RebateCodeDayOfWeekRelation = new List<RebateCodeDayOfWeekRelation>{};
            RebateCodeServiceRelation = new List<RebateCodeServiceRelation>{};
            RebateCodeBookingPriceRelation = new List<RebateCodeBookingPriceRelation>{};
            RebateCodeCustomerRelation = new List<RebateCodeCustomerRelation>{};
            DaysOfWeek = new List<DaysOfWeek>{};
            Transactions = new List<RebateCodeTransaction>{};
        }

        [References(typeof(BokaMera.API.ServiceModel.Db.RebateCodeType))]
        public virtual int RebateCodeTypeId { get; set; }

        public virtual RebateCodeType RebateCodeTypeInfo { get; set; }
        [References(typeof(BokaMera.API.ServiceModel.Db.RebateCodeStatus))]
        public virtual int RebateCodeStatusId { get; set; }

        public virtual RebateCodeStatus RebateCodeStatusInfo { get; set; }
        [Ignore]
        public virtual Article Article { get; set; }

        [Ignore]
        public virtual List<Service> Services { get; set; }

        public virtual List<RebateCodeDayOfWeekRelation> RebateCodeDayOfWeekRelation { get; set; }
        public virtual List<RebateCodeServiceRelation> RebateCodeServiceRelation { get; set; }
        public virtual List<RebateCodeBookingPriceRelation> RebateCodeBookingPriceRelation { get; set; }
        public virtual List<RebateCodeCustomerRelation> RebateCodeCustomerRelation { get; set; }
        [Ignore]
        public virtual string ServicesNames { get; set; }

        [Ignore]
        public virtual List<DaysOfWeek> DaysOfWeek { get; set; }

        [Ignore]
        public virtual RebateCodeStatus RebateCodeStatus { get; set; }

        [Ignore]
        public virtual RebateCodeType RebateCodeType { get; set; }

        [Ignore]
        public virtual List<RebateCodeTransaction> Transactions { get; set; }

        [Ignore]
        public virtual double? RemainingAmount { get; set; }

        [Ignore]
        public virtual int? RemainingUsage { get; set; }

        [Ignore]
        public virtual int CurrentNumberOfUsesPerCustomer { get; set; }

        [Ignore]
        public virtual bool IsSpecificByDayOfWeek { get; set; }

        [Ignore]
        public virtual bool Active { get; set; }

        [Ignore]
        public virtual bool ActiveByStatus { get; set; }

        [Ignore]
        public virtual string RebateCodeCurrencySign { get; set; }

        public virtual Currency CurrencyInfo { get; set; }
        [Ignore]
        public virtual bool PaymentReceived { get; set; }

        [Ignore]
        public virtual string InternalReferenceId { get; set; }

        [Required]
        public virtual DateTime ValidFrom { get; set; }

        [Required]
        public virtual DateTime ValidTo { get; set; }

        [Required]
        public virtual string RebateCodeSign { get; set; }

        [Required]
        public virtual int RebateCodeValue { get; set; }

        [Required]
        public virtual int MaxNumberOfUses { get; set; }

        [Required]
        public virtual int MaxNumberOfUsesPerCustomer { get; set; }

        [Required]
        public virtual int NumberOfUsesUsed { get; set; }

        public virtual string PersonalNote { get; set; }
        [Required]
        public virtual string CreatedBy { get; set; }

        [Required]
        public virtual DateTime Created { get; set; }

        [Required]
        public virtual string UpdatedBy { get; set; }

        [Required]
        public virtual DateTime UpdatedDate { get; set; }

        [Required]
        public virtual TimeSpan FromTime { get; set; }

        [Required]
        public virtual TimeSpan ToTime { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual int Id { get; set; }
        public virtual int? ArticleId { get; set; }
    }

    public partial class RebateCodeBookingPriceRelation
        : BaseModel
    {
        [Required]
        public virtual Guid CompanyId { get; set; }

        [Required]
        public virtual int PriceId { get; set; }

        [Required]
        public virtual int RebateCodeId { get; set; }

        public virtual int Id { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class RebateCodeCustomerRelation
        : BaseModel
    {
        [Required]
        public virtual Guid CompanyId { get; set; }

        [Required]
        public virtual Guid CustomerId { get; set; }

        [Required]
        public virtual int RebateCodeId { get; set; }

        public virtual int Id { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual bool RebateCodeEmailSentToCustomer { get; set; }
        public virtual string MessageToReceiver { get; set; }
        public virtual bool Buyer { get; set; }
    }

    public partial class RebateCodeDayOfWeekRelation
        : BaseModel
    {
        [Ignore]
        public virtual BokaMeraDayOfWeek DayOfWeek { get; set; }

        [Required]
        public virtual int DayOfWeekId { get; set; }

        [Required]
        public virtual int RebateCodeId { get; set; }

        [Required]
        public virtual Guid CompanyId { get; set; }

        public virtual int Id { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class RebateCodeServiceRelation
        : BaseModel
    {
        [Required]
        public virtual Guid CompanyId { get; set; }

        [Required]
        public virtual int ServiceId { get; set; }

        [Required]
        public virtual int RebateCodeId { get; set; }

        public virtual int Id { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class RebateCodeStatus
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        public virtual string Description { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class RebateCodeTransaction
        : BaseModel, IBaseModelCreated, IBaseModelUpdated
    {
        [Ignore]
        public virtual Booking Booking { get; set; }

        [Ignore]
        public virtual RebateCode RebateCode { get; set; }

        [Ignore]
        public virtual Customer Customer { get; set; }

        public virtual int Id { get; set; }
        public virtual Guid CompanyId { get; set; }
        public virtual string Note { get; set; }
        [Required]
        public virtual int RebateCodeId { get; set; }

        [Required]
        public virtual double Amount { get; set; }

        [Required]
        public virtual int Usage { get; set; }

        public virtual int? BookingId { get; set; }
        [Required]
        public virtual DateTime UpdatedDate { get; set; }

        [Required]
        public virtual DateTime CreatedDate { get; set; }
    }

    public partial class RebateCodeType
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        public virtual string Description { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class RegEx
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        [Required]
        public virtual string RegExCode { get; set; }

        public virtual string ErrorMessage { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class Resource
        : BaseModel, ICustomFieldTable, IBaseModelCreated, IBaseModelUpdated
    {
        [Ignore]
        public virtual int Priority { get; set; }

        [Ignore]
        public virtual IList<ISchedule> Schedules { get; set; }

        [Ignore]
        public virtual IList<ITimeException> Exceptions { get; set; }

        [Ignore]
        public virtual IList<IBookedTime> Bookings { get; set; }

        [Ignore]
        public virtual IList<CustomFieldConfig> CustomFieldsConfig { get; set; }

        [Ignore]
        public virtual IList<CustomFieldDataResponse> CustomFieldsData { get; set; }

        [Required]
        public virtual Guid CompanyId { get; set; }

        public virtual int Id { get; set; }
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual bool Active { get; set; }

        public virtual string Description { get; set; }
        public virtual string ImageUrl { get; set; }
        [Required]
        public virtual DateTime UpdatedDate { get; set; }

        [Required]
        public virtual DateTime CreatedDate { get; set; }

        [Required]
        public virtual string Color { get; set; }

        public virtual string Email { get; set; }
        public virtual string MobilePhone { get; set; }
        public virtual bool? EmailNotification { get; set; }
        public virtual bool? SMSNotification { get; set; }
        [Required]
        public virtual bool SendSMSReminder { get; set; }

        [Required]
        public virtual bool SendEmailReminder { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual string AccessGroup { get; set; }
        public virtual string TextField1 { get; set; }
        public virtual string TextField2 { get; set; }
        public virtual string TextField3 { get; set; }
        public virtual string TextField4 { get; set; }
        public virtual string TextField5 { get; set; }
        public virtual string TextField6 { get; set; }
        public virtual string TextField7 { get; set; }
        public virtual string TextField8 { get; set; }
        public virtual string TextField9 { get; set; }
        public virtual string TextField10 { get; set; }
        public virtual string TextField11 { get; set; }
        public virtual string TextField12 { get; set; }
        public virtual string TextField13 { get; set; }
        public virtual string TextField14 { get; set; }
        public virtual string TextField15 { get; set; }
        public virtual string TextField16 { get; set; }
        public virtual string TextField17 { get; set; }
        public virtual string TextField18 { get; set; }
        public virtual string TextField19 { get; set; }
        public virtual string TextField20 { get; set; }
    }

    public partial class ResourceType
        : BaseModel, IBaseModelCreated, IBaseModelUpdated
    {
        public ResourceType()
        {
            Resources = new List<Resource>{};
        }

        [Ignore]
        public virtual bool SelectableByUser { get; set; }

        [Ignore]
        public virtual List<Resource> Resources { get; set; }

        [Required]
        public virtual Guid CompanyId { get; set; }

        public virtual int Id { get; set; }
        [Required]
        public virtual string Name { get; set; }

        public virtual string Description { get; set; }
        [Required]
        public virtual bool Active { get; set; }

        [Required]
        public virtual DateTime UpdatedDate { get; set; }

        [Required]
        public virtual DateTime CreatedDate { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

    public partial class Review
        : BaseModel
    {
        public virtual Guid ReviewId { get; set; }
        [Required]
        public virtual Guid CompanyId { get; set; }

        [Required]
        public virtual string Title { get; set; }

        [Required]
        public virtual string Description { get; set; }

        [Required]
        public virtual string Author { get; set; }

        [Required]
        public virtual int Status { get; set; }

        [Required]
        public virtual DateTime Created { get; set; }

        [Required]
        public virtual DateTime Updated { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual string ReviewAnswer { get; set; }
    }

    public partial class ScheduleView
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class Service
        : BaseModel, ICustomFieldTable, IBaseModelCreated, IBaseModelUpdated
    {
        public Service()
        {
            ResourceTypes = new List<ResourceType>{};
            Prices = new List<ServicePrice>{};
            BookingStatusOptions = new List<BookingStatusOptions>{};
            Ratings = new List<Rating>{};
        }

        [Ignore]
        public virtual List<ResourceType> ResourceTypes { get; set; }

        [Ignore]
        public virtual IEnumerable<Resource> Resources { get; set; }

        [Ignore]
        public virtual TotalPriceInformation TotalPrice { get; set; }

        [Ignore]
        public virtual List<ServicePrice> Prices { get; set; }

        [Ignore]
        public virtual List<BookingStatusOptions> BookingStatusOptions { get; set; }

        [Ignore]
        public virtual bool IsGroupBooking { get; set; }

        [Ignore]
        public virtual bool IsMultipleResource { get; set; }

        [Ignore]
        public virtual BookingSettings Settings { get; set; }

        [Ignore]
        public virtual PaymentSetting PaymentSetting { get; set; }

        [Ignore]
        public virtual IList<CustomFieldConfig> BookingCustomFieldsConfig { get; set; }

        [Ignore]
        public virtual IList<CustomFieldConfig> CustomerCustomFieldsConfig { get; set; }

        [Ignore]
        public virtual IList<CustomFieldConfig> CustomFieldsConfig { get; set; }

        [Ignore]
        public virtual IList<CustomFieldDataResponse> CustomFieldsData { get; set; }

        [Ignore]
        public virtual IList<ISchedule> Schedules { get; set; }

        [Ignore]
        public virtual IList<Booking> CustomerActiveBookings { get; set; }

        [Ignore]
        public virtual ScheduleType ScheduleType { get; set; }

        [Ignore]
        public virtual TimeSpan LastTimeToUnbookThreshold { get; set; }

        [Ignore]
        public virtual TimeSpan LastTimeToBookThreshold { get; set; }

        [Ignore]
        public virtual AverageRatingScore RatingScore { get; set; }

        [Ignore]
        public virtual List<Rating> Ratings { get; set; }

        [Required]
        public virtual Guid CompanyId { get; set; }

        public virtual int Id { get; set; }
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        public virtual string Group { get; set; }
        [Required]
        public virtual bool Active { get; set; }

        [Required]
        public virtual int SortOrder { get; set; }

        [Required]
        public virtual int PauseAfterBooking { get; set; }

        [Required]
        public virtual int UnbookBeforeDays { get; set; }

        [Required]
        public virtual int UnbookBeforeHours { get; set; }

        [Required]
        public virtual int UnbookBeforeMinutes { get; set; }

        [Required]
        public virtual int BookBeforeDays { get; set; }

        [Required]
        public virtual int BookBeforeHours { get; set; }

        [Required]
        public virtual int BookBeforeMinutes { get; set; }

        public virtual int? Duration { get; set; }
        public virtual int DurationTypeId { get; set; }
        public virtual int? MinDuration { get; set; }
        public virtual int? MaxDuration { get; set; }
        public virtual int? DurationInterval { get; set; }
        public virtual int? TotalSpots { get; set; }
        public virtual string ImageUrl { get; set; }
        [Required]
        public virtual int ScheduleTypeId { get; set; }

        [Required]
        public virtual DateTime UpdatedDate { get; set; }

        [Required]
        public virtual DateTime CreatedDate { get; set; }

        [Required]
        public virtual bool OnlyVisibleByAdmin { get; set; }

        [Required]
        public virtual int MinNumberOfSpotsPerBooking { get; set; }

        [Required]
        public virtual int MaxNumberOfSpotsPerBooking { get; set; }

        [Required]
        public virtual int MinNumberOfResourcesToBook { get; set; }

        [Required]
        public virtual int MaxNumberOfResourcesToBook { get; set; }

        [Required]
        public virtual bool IsPaymentEnabled { get; set; }

        [Required]
        public virtual int MaxPaymentTime { get; set; }

        [Required]
        public virtual bool LockSpotsToBooking { get; set; }

        [Required]
        public virtual bool EnableBookingQueue { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual int BookingStatusId { get; set; }

        [Required]
        public virtual bool EnableCodeLockSync { get; set; }

        [Required]
        public virtual bool EnableCustomerManualPayment { get; set; }

        public virtual int? PriceViewTypeId { get; set; }
        public virtual string TextField1 { get; set; }
        public virtual string TextField2 { get; set; }
        public virtual string TextField3 { get; set; }
        public virtual string TextField4 { get; set; }
        public virtual string TextField5 { get; set; }
        public virtual string TextField6 { get; set; }
        public virtual string TextField7 { get; set; }
        public virtual string TextField8 { get; set; }
        public virtual string TextField9 { get; set; }
        public virtual string TextField10 { get; set; }
        public virtual string TextField11 { get; set; }
        public virtual string TextField12 { get; set; }
        public virtual string TextField13 { get; set; }
        public virtual string TextField14 { get; set; }
        public virtual string TextField15 { get; set; }
        public virtual string TextField16 { get; set; }
        public virtual string TextField17 { get; set; }
        public virtual string TextField18 { get; set; }
        public virtual string TextField19 { get; set; }
        public virtual string TextField20 { get; set; }
        public partial class TotalPriceInformation
        {
            public TotalPriceInformation()
            {
                AppliedCodes = new List<AppliedRebateCodes>{};
            }

            public virtual double TotalPrice { get; set; }
            public virtual double TotalVATAmount { get; set; }
            public virtual double TotalRebate { get; set; }
            public virtual double TotalPriceBeforeRebate { get; set; }
            public virtual List<AppliedRebateCodes> AppliedCodes { get; set; }
            public virtual string PriceSign { get; set; }
            public virtual string CurrencyId { get; set; }
            public virtual decimal VAT { get; set; }
        }

        public partial class AppliedRebateCodes
        {
            public virtual int RebateCodeId { get; set; }
            public virtual string RebateCodeSign { get; set; }
            public virtual int RebateCodeValue { get; set; }
            public virtual double RebateAmount { get; set; }
            public virtual RebateCodeType RebateCodeType { get; set; }
        }

    }

    public partial class ServicePrice
        : BaseModel, IInterval
    {
        public ServicePrice()
        {
            PriceMappings = new List<PriceMapping>{};
            DayOfWeeks = new List<ServicePriceDayOfWeekRelation>{};
            RebateCodesApplied = new List<RebateCode>{};
            OverlappingPrices = new List<ServicePrice>{};
        }

        [References(typeof(BokaMera.API.ServiceModel.Db.Currency))]
        public virtual string CurrencyId { get; set; }

        public virtual Currency CurrencyInfo { get; set; }
        [Ignore]
        public virtual Service Service { get; set; }

        [Ignore]
        public virtual List<PriceMapping> PriceMappings { get; set; }

        [Ignore]
        public virtual bool isTimeSpecific { get; set; }

        [Ignore]
        public virtual bool isDaysOfWeekSpecific { get; set; }

        public virtual List<ServicePriceDayOfWeekRelation> DayOfWeeks { get; set; }
        [Ignore]
        public virtual double? PriceBeforeRebate { get; set; }

        [Ignore]
        public virtual List<RebateCode> RebateCodesApplied { get; set; }

        [Ignore]
        public virtual string PriceText { get; set; }

        [Ignore]
        public virtual List<ServicePrice> OverlappingPrices { get; set; }

        [Required]
        public virtual Guid CompanyId { get; set; }

        public virtual int Id { get; set; }
        [Required]
        public virtual int ServiceId { get; set; }

        public virtual double? Price { get; set; }
        [Required]
        public virtual DateTime Updated { get; set; }

        [Required]
        public virtual DateTime Created { get; set; }

        [Required]
        public virtual TimeSpan FromTime { get; set; }

        [Required]
        public virtual TimeSpan ToTime { get; set; }

        [Required]
        public virtual decimal VAT { get; set; }

        public virtual string Category { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual DateTime From { get; set; }

        [Required]
        public virtual DateTime To { get; set; }

        [Required]
        public virtual int CalculationTypeId { get; set; }
    }

    public partial class ServicePriceDayOfWeekRelation
        : BaseModel
    {
        [Ignore]
        public virtual BokaMeraDayOfWeek DayOfWeek { get; set; }

        [Required]
        public virtual Guid CompanyId { get; set; }

        [Required]
        public virtual int ServicePriceId { get; set; }

        [Required]
        public virtual int DayOfWeekId { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        public virtual int Id { get; set; }
    }

    public partial class UserAccessKeys
        : BaseModel
    {
        [Required]
        public virtual Guid CompanyId { get; set; }

        [Required]
        public virtual int AccessKeyTypeId { get; set; }

        [Required]
        public virtual string Value { get; set; }

        [Required]
        public virtual Guid CustomerId { get; set; }

        public virtual string Description { get; set; }
        [Required]
        public virtual Guid Id { get; set; }
    }

    public partial class WeekNumberSetting
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual int Id { get; set; }
    }

    public partial class WidgetBookingLayouts
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        [Required]
        public virtual string Code { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual int Id { get; set; }
    }

    public partial class WidgetBookingMethods
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        [Required]
        public virtual string Code { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual int Id { get; set; }
    }

    public partial class WidgetServiceLayouts
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        [Required]
        public virtual string Code { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual int Id { get; set; }
    }

    public partial class WidgetTimeLayouts
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }

        [Required]
        public virtual string Description { get; set; }

        [Required]
        public virtual string Code { get; set; }

        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual int Id { get; set; }
    }

}

namespace BokaMera.API.ServiceModel.Dtos
{
    public partial class AccessKeyTypeResponse
    {
        public virtual int Id { get; set; }
        public virtual string KeyType { get; set; }
        public virtual string Description { get; set; }
    }

    public partial class BookedCustomer
    {
        public virtual Guid Id { get; set; }
        public virtual string Firstname { get; set; }
        public virtual string Lastname { get; set; }
        public virtual string Email { get; set; }
        public virtual string Phone { get; set; }
        public virtual string FacebookUserName { get; set; }
        public virtual string ImageUrl { get; set; }
        public virtual string CorporateIdentityNumber { get; set; }
        public virtual string InvoiceAddress1 { get; set; }
        public virtual string InvoiceAddress2 { get; set; }
        public virtual string InvoiceCity { get; set; }
        public virtual string InvoicePostalCode { get; set; }
        public virtual string InvoiceCountryCode { get; set; }
    }

    public partial class BookedResource
    {
        public virtual int Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string Color { get; set; }
        public virtual Uri ImageUrl { get; set; }
        public virtual string Email { get; set; }
        public virtual string MobilePhone { get; set; }
        public virtual string AccessGroup { get; set; }
        public virtual bool EmailNotification { get; set; }
        public virtual bool SMSNotification { get; set; }
        public virtual bool EmailReminder { get; set; }
        public virtual bool SMSReminder { get; set; }
    }

    public partial class BookedResourceType
    {
        public BookedResourceType()
        {
            Resources = new List<BookedResource>{};
        }

        ///<summary>
        ///The resource type id
        ///</summary>
        [ApiMember(Description="The resource type id")]
        public virtual int Id { get; set; }

        ///<summary>
        ///The resource type name
        ///</summary>
        [ApiMember(Description="The resource type name")]
        public virtual string Name { get; set; }

        ///<summary>
        ///The resources inside resource type
        ///</summary>
        [ApiMember(Description="The resources inside resource type")]
        public virtual List<BookedResource> Resources { get; set; }
    }

    public partial class BookingStatusOptionsResponse
    {
        public virtual int Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string Description { get; set; }
    }

    public partial class CompanyRatingSummary
    {
        ///<summary>
        ///The average rating score
        ///</summary>
        [ApiMember(Description="The average rating score")]
        public virtual double AverageScore { get; set; }

        ///<summary>
        ///The number of ratings of score 1
        ///</summary>
        [ApiMember(Description="The number of ratings of score 1")]
        public virtual int RatingScore1Count { get; set; }

        ///<summary>
        ///The number of ratings of score 2
        ///</summary>
        [ApiMember(Description="The number of ratings of score 2")]
        public virtual int RatingScore2Count { get; set; }

        ///<summary>
        ///The number of ratings of score 3
        ///</summary>
        [ApiMember(Description="The number of ratings of score 3")]
        public virtual int RatingScore3Count { get; set; }

        ///<summary>
        ///The number of ratings of score 4
        ///</summary>
        [ApiMember(Description="The number of ratings of score 4")]
        public virtual int RaingScore4Count { get; set; }

        ///<summary>
        ///The number of ratings of score 5
        ///</summary>
        [ApiMember(Description="The number of ratings of score 5")]
        public virtual int RatingScore5Count { get; set; }

        ///<summary>
        ///The number of ratings
        ///</summary>
        [ApiMember(Description="The number of ratings")]
        public virtual int Count { get; set; }
    }

    public partial class CustomFieldConfigData
    {
        public CustomFieldConfigData()
        {
            Values = new List<CustomFieldValueResponse>{};
        }

        ///<summary>
        ///Custom field id
        ///</summary>
        [ApiMember(Description="Custom field id")]
        public virtual int Id { get; set; }

        ///<summary>
        ///Configuration name. Example: 'Number of persons'.
        ///</summary>
        [ApiMember(Description="Configuration name. Example: 'Number of persons'.")]
        public virtual string Name { get; set; }

        ///<summary>
        ///Custom field description. Example: 'For how many persons is this booking?'
        ///</summary>
        [ApiMember(Description="Custom field description. Example: 'For how many persons is this booking?'")]
        public virtual string Description { get; set; }

        ///<summary>
        ///Field width. Example: 20 for 20px
        ///</summary>
        [ApiMember(Description="Field width. Example: 20 for 20px")]
        public virtual int? Width { get; set; }

        ///<summary>
        ///Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'
        ///</summary>
        [ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'")]
        public virtual string DataType { get; set; }

        ///<summary>
        ///Default value of the field. Example: '3'
        ///</summary>
        [ApiMember(Description="Default value of the field. Example: '3'")]
        public virtual string DefaultValue { get; set; }

        ///<summary>
        ///Determines if the field is required to have a value or not
        ///</summary>
        [ApiMember(Description="Determines if the field is required to have a value or not")]
        public virtual bool IsMandatory { get; set; }

        ///<summary>
        ///Error message shown to the user if the field data is required but not entered
        ///</summary>
        [ApiMember(Description="Error message shown to the user if the field data is required but not entered")]
        public virtual string MandatoryErrorMessage { get; set; }

        ///<summary>
        ///Max lenght of the field
        ///</summary>
        [ApiMember(Description="Max lenght of the field")]
        public virtual int MaxLength { get; set; }

        ///<summary>
        ///If the field should have multiple lines
        ///</summary>
        [ApiMember(Description="If the field should have multiple lines")]
        public virtual bool MultipleLineText { get; set; }

        ///<summary>
        ///Regular expression used for validation of the field
        ///</summary>
        [ApiMember(Description="Regular expression used for validation of the field")]
        public virtual string RegEx { get; set; }

        ///<summary>
        ///Error message shown if the regular expression validation failed
        ///</summary>
        [ApiMember(Description="Error message shown if the regular expression validation failed")]
        public virtual string RegExErrorMessage { get; set; }

        ///<summary>
        ///The values to select from if Datatype is DropDown for this custom field
        ///</summary>
        [ApiMember(Description="The values to select from if Datatype is DropDown for this custom field")]
        public virtual List<CustomFieldValueResponse> Values { get; set; }
    }

    public partial class CustomFieldDataResponse
    {
        public virtual int Id { get; set; }
        public virtual string Column { get; set; }
        public virtual string Name { get; set; }
        public virtual string Description { get; set; }
        public virtual string Value { get; set; }
        ///<summary>
        ///Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'
        ///</summary>
        [ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'")]
        public virtual string DataType { get; set; }
    }

    public partial class CustomFieldValueResponse
    {
        public virtual string Value { get; set; }
    }

    public partial class DayOfWeekDto
    {
        public virtual int DayOfWeekId { get; set; }
        public virtual int DotNetDayOfWeekId { get; set; }
        public virtual string DayOfWeek { get; set; }
    }

    public partial class GroupBookingSettings
    {
        public virtual bool Active { get; set; }
        public virtual int Min { get; set; }
        public virtual int Max { get; set; }
    }

    public partial class LanguageResponse
    {
        public virtual string Id { get; set; }
        public virtual string Name { get; set; }
    }

    public partial class MultipleResourceSettings
    {
        public virtual bool Active { get; set; }
        public virtual int Min { get; set; }
        public virtual int Max { get; set; }
    }

    public partial class QuantityToBook
    {
        ///<summary>
        ///If service has a price, enter the price id for that price. If no price exists for the service set 0 as PriceId. If you put 0 and a price exists, it will use that price (only works if just one price exists for the current selected date to book)
        ///</summary>
        [ApiMember(Description="If service has a price, enter the price id for that price. If no price exists for the service set 0 as PriceId. If you put 0 and a price exists, it will use that price (only works if just one price exists for the current selected date to book)", IsRequired=true)]
        public virtual int PriceId { get; set; }

        ///<summary>
        ///Set the number of spots or resources you want to book on the specific price category
        ///</summary>
        [ApiMember(Description="Set the number of spots or resources you want to book on the specific price category", IsRequired=true)]
        public virtual int Quantity { get; set; }

        ///<summary>
        ///If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.
        ///</summary>
        [ApiMember(Description="If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.")]
        public virtual bool OccupiesSpot { get; set; }
    }

    public partial class RatingReviewResponse
    {
        ///<summary>
        ///The title for the review
        ///</summary>
        [ApiMember(Description="The title for the review")]
        public virtual string Title { get; set; }

        ///<summary>
        ///The description for the review
        ///</summary>
        [ApiMember(Description="The description for the review")]
        public virtual string Description { get; set; }

        ///<summary>
        ///The rating score
        ///</summary>
        [ApiMember(Description="The rating score")]
        public virtual int RatingScore { get; set; }

        ///<summary>
        ///The review author
        ///</summary>
        [ApiMember(Description="The review author")]
        public virtual string Author { get; set; }

        ///<summary>
        ///The created date
        ///</summary>
        [ApiMember(Description="The created date")]
        public virtual DateTime Created { get; set; }

        ///<summary>
        ///The review answer from the company
        ///</summary>
        [ApiMember(Description="The review answer from the company")]
        public virtual string ReviewAnswer { get; set; }
    }

    public partial class ServiceInfoResponse
    {
        public virtual int Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string Description { get; set; }
        public virtual Uri ImageUrl { get; set; }
        public virtual int? LengthInMinutes { get; set; }
        public virtual int MaxNumberOfSpotsPerBooking { get; set; }
        public virtual int MinNumberOfSpotsPerBooking { get; set; }
        public virtual GroupBookingSettings GroupBooking { get; set; }
        public virtual MultipleResourceSettings MultipleResource { get; set; }
        public virtual bool IsGroupBooking { get; set; }
        public virtual bool IsPaymentEnabled { get; set; }
    }

    public partial class ServicePriceResponse
    {
        public ServicePriceResponse()
        {
            DaysOfWeek = new List<DayOfWeekDto>{};
        }

        ///<summary>
        ///The company id
        ///</summary>
        [ApiMember(Description="The company id")]
        public virtual Guid CompanyId { get; set; }

        ///<summary>
        ///The price id
        ///</summary>
        [ApiMember(Description="The price id")]
        public virtual int Id { get; set; }

        ///<summary>
        ///The service id
        ///</summary>
        [ApiMember(Description="The service id")]
        public virtual int ServiceId { get; set; }

        ///<summary>
        ///The price
        ///</summary>
        [ApiMember(Description="The price")]
        public virtual double Price { get; set; }

        ///<summary>
        ///The price calculation type id, 1 = Normal, price is for the service total duration, 2 = Price is per minute, 3 = Price is per hour, 4= Price is per day
        ///</summary>
        [ApiMember(Description="The price calculation type id, 1 = Normal, price is for the service total duration, 2 = Price is per minute, 3 = Price is per hour, 4= Price is per day")]
        public virtual int CalculationTypeId { get; set; }

        ///<summary>
        ///The price currency
        ///</summary>
        [ApiMember(Description="The price currency")]
        public virtual string CurrencyId { get; set; }

        ///<summary>
        ///The price sign
        ///</summary>
        [ApiMember(Description="The price sign")]
        public virtual string PriceSign { get; set; }

        ///<summary>
        ///The price VAT in percent
        ///</summary>
        [ApiMember(Description="The price VAT in percent")]
        public virtual decimal VAT { get; set; }

        ///<summary>
        ///The price category if price has a category
        ///</summary>
        [ApiMember(Description="The price category if price has a category")]
        public virtual string Category { get; set; }

        ///<summary>
        ///The price text to display
        ///</summary>
        [ApiMember(Description="The price text to display")]
        public virtual string PriceText { get; set; }

        ///<summary>
        ///The valid from date for the price.
        ///</summary>
        [ApiMember(Description="The valid from date for the price.")]
        public virtual DateTime From { get; set; }

        ///<summary>
        ///The valid to date for the price.
        ///</summary>
        [ApiMember(Description="The valid to date for the price.")]
        public virtual DateTime To { get; set; }

        ///<summary>
        ///If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.
        ///</summary>
        [ApiMember(Description="If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.")]
        public virtual List<DayOfWeekDto> DaysOfWeek { get; set; }

        ///<summary>
        ///If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.
        ///</summary>
        [ApiMember(Description="If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.")]
        public virtual TimeSpan? FromTime { get; set; }

        ///<summary>
        ///If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.
        ///</summary>
        [ApiMember(Description="If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.")]
        public virtual TimeSpan? ToTime { get; set; }

        public virtual ServiceInfoResponse Service { get; set; }
        ///<summary>
        ///If the price is only valid for a specific time span
        ///</summary>
        [ApiMember(Description="If the price is only valid for a specific time span")]
        public virtual bool IsTimeSpecific { get; set; }

        ///<summary>
        ///If the price is only valid for specific days of week
        ///</summary>
        [ApiMember(Description="If the price is only valid for specific days of week")]
        public virtual bool IsDaysOfWeekSpecific { get; set; }
    }

    public partial class ServiceQuery
        : QueryDb<Service, ServiceQueryResponse>
    {
        ///<summary>
        ///Company to show services for
        ///</summary>
        [ApiMember(Description="Company to show services for", ParameterType="query")]
        public virtual Guid? CompanyId { get; set; }

        ///<summary>
        ///If you only want to get a specific service
        ///</summary>
        [ApiMember(Description="If you only want to get a specific service", ParameterType="query")]
        public virtual int? Id { get; set; }

        ///<summary>
        ///Service status
        ///</summary>
        [ApiMember(DataType="boolean", Description="Service status", ParameterType="query")]
        public virtual bool? Active { get; set; }

        ///<summary>
        ///If you want to include the connected resource types and resources
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to include the connected resource types and resources", ParameterType="query")]
        public virtual bool IncludeResources { get; set; }

        ///<summary>
        ///If you want to include the connected schedules
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to include the connected schedules", ParameterType="query")]
        public virtual bool IncludeSchedules { get; set; }

        ///<summary>
        ///If you want to include the connected custom fields
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to include the connected custom fields", ParameterType="query")]
        public virtual bool IncludeCustomFields { get; set; }

        ///<summary>
        ///If you want to include the connected custom fields selectable values
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to include the connected custom fields selectable values", ParameterType="query")]
        public virtual bool IncludeCustomFieldValues { get; set; }

        ///<summary>
        ///If you want to include the connected custom fields needs to be entered when booking a new time on the service
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to include the connected custom fields needs to be entered when booking a new time on the service", ParameterType="query")]
        public virtual bool IncludeBookingCustomFields { get; set; }

        ///<summary>
        ///If you want to include the connected custom fields for the customers
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to include the connected custom fields for the customers", ParameterType="query")]
        public virtual bool IncludeCustomerCustomFields { get; set; }

        ///<summary>
        ///If you want to include the service prices
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to include the service prices", ParameterType="query")]
        public virtual bool IncludePrices { get; set; }

        ///<summary>
        ///If you have selected to include the prices, here you can set the date to show the prices for
        ///</summary>
        [ApiMember(DataType="dateTime", Description="If you have selected to include the prices, here you can set the date to show the prices for", ParameterType="query")]
        public virtual DateTime? PriceDate { get; set; }

        ///<summary>
        ///If you have selected to include the prices, here you can set the datetime to show the exact price
        ///</summary>
        [ApiMember(DataType="timeSpan", Description="If you have selected to include the prices, here you can set the datetime to show the exact price", ParameterType="query")]
        public virtual TimeSpan? PriceTime { get; set; }

        ///<summary>
        ///If you have selected to include the prices, here you can include the rebate codes
        ///</summary>
        [ApiMember(Description="If you have selected to include the prices, here you can include the rebate codes")]
        public virtual List<int> RebateCodeIds { get; set; }

        ///<summary>
        ///If you have selected to include the prices, here you can include the quantities to book to get the correct total price.
        ///</summary>
        [ApiMember(Description="If you have selected to include the prices, here you can include the quantities to book to get the correct total price.")]
        public virtual List<QuantityToBook> Quantities { get; set; }

        ///<summary>
        ///If you want to include the booking status options to select from
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to include the booking status options to select from", ParameterType="query")]
        public virtual bool IncludeBookingStatusOptions { get; set; }

        ///<summary>
        ///If you want to include the rating reviews
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to include the rating reviews", ParameterType="query")]
        public virtual bool IncludeRatingReviews { get; set; }

        ///<summary>
        ///If you want to include the rating summary
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to include the rating summary", ParameterType="query")]
        public virtual bool IncludeRatingSummary { get; set; }

        ///<summary>
        ///If you want to filter out prices which or not active for the day
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to filter out prices which or not active for the day", ParameterType="query")]
        public virtual bool IncludePricesFromOtherDays { get; set; }
    }

    public partial class ServiceQueryResponse
    {
        public ServiceQueryResponse()
        {
            CustomFields = new List<CustomFieldConfigData>{};
            CustomFieldValues = new List<CustomFieldDataResponse>{};
            BookingCustomFields = new List<CustomFieldConfigData>{};
            CustomerCustomFields = new List<CustomFieldConfigData>{};
            BookingStatusOptions = new List<BookingStatusOptionsResponse>{};
            Prices = new List<ServicePriceResponse>{};
            Reviews = new List<RatingReviewResponse>{};
            ResourceTypes = new List<ServiceResourceTypeResponse>{};
        }

        public virtual int Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string Description { get; set; }
        public virtual Uri ImageUrl { get; set; }
        public virtual int TotalSpots { get; set; }
        ///<summary>
        ///If this setting is turned on the remaining spots (if Totalspots > 1) is locked from be booked by another customer.
        ///</summary>
        [ApiMember(Description="If this setting is turned on the remaining spots (if Totalspots > 1) is locked from be booked by another customer.")]
        public virtual bool? LockSpotsToBooking { get; set; }

        public virtual int MinNumberOfSpotsPerBooking { get; set; }
        public virtual int MaxNumberOfSpotsPerBooking { get; set; }
        public virtual int MinNumberOfResourcesToBook { get; set; }
        public virtual int MaxNumberOfResourcesToBook { get; set; }
        public virtual int UnbookBeforeDays { get; set; }
        public virtual int UnbookBeforeHours { get; set; }
        public virtual int UnbookBeforeMinutes { get; set; }
        ///<summary>
        ///What type of schedule is connected to the service.  RecurringSchedule = 1, DateSchedule = 2
        ///</summary>
        [ApiMember(Description="What type of schedule is connected to the service.  RecurringSchedule = 1, DateSchedule = 2")]
        public virtual ScheduleType ScheduleType { get; set; }

        ///<summary>
        ///What type of schedule is connected to the service.  RecurringSchedule = 1, DateSchedule = 2
        ///</summary>
        [ApiMember(Description="What type of schedule is connected to the service.  RecurringSchedule = 1, DateSchedule = 2")]
        public virtual int ScheduleTypeId { get; set; }

        public virtual int BookBeforeDays { get; set; }
        public virtual int BookBeforeHours { get; set; }
        public virtual int BookBeforeMinutes { get; set; }
        public virtual string Group { get; set; }
        public virtual bool EnableBookingQueue { get; set; }
        public virtual bool EnableCodeLockSync { get; set; }
        public virtual bool EnableCustomerManualPayment { get; set; }
        public virtual int SortOrder { get; set; }
        public virtual bool Active { get; set; }
        public virtual bool IsGroupBooking { get; set; }
        public virtual GroupBookingSettings GroupBooking { get; set; }
        public virtual MultipleResourceSettings MultipleResource { get; set; }
        public virtual bool IsPaymentEnabled { get; set; }
        ///<summary>
        ///Maximum numbers of minutes the booking payment must be completed before automatically unbooked
        ///</summary>
        [ApiMember(Description="Maximum numbers of minutes the booking payment must be completed before automatically unbooked")]
        public virtual int MaxPaymentTime { get; set; }

        ///<summary>
        ///If the booking should be either 1 = Booked) or 3 = Reserved. Default is 1 = Booked.
        ///</summary>
        [ApiMember(Description="If the booking should be either 1 = Booked) or 3 = Reserved. Default is 1 = Booked.")]
        public virtual int BookingStatusId { get; set; }

        public virtual bool OnlyVisibleByAdmin { get; set; }
        public virtual int? LengthInMinutes { get; set; }
        public virtual int DurationTypeId { get; set; }
        public virtual int? Duration { get; set; }
        public virtual int? MinDuration { get; set; }
        public virtual int? MaxDuration { get; set; }
        public virtual int? DurationInterval { get; set; }
        public virtual int PauseAfterBooking { get; set; }
        public virtual List<CustomFieldConfigData> CustomFields { get; set; }
        public virtual List<CustomFieldDataResponse> CustomFieldValues { get; set; }
        public virtual List<CustomFieldConfigData> BookingCustomFields { get; set; }
        public virtual List<CustomFieldConfigData> CustomerCustomFields { get; set; }
        ///<summary>
        ///The booking status options to choose from
        ///</summary>
        [ApiMember(Description="The booking status options to choose from")]
        public virtual List<BookingStatusOptionsResponse> BookingStatusOptions { get; set; }

        public virtual List<ServicePriceResponse> Prices { get; set; }
        public virtual ServiceSchedules Schedules { get; set; }
        public virtual CompanyRatingSummary RatingSummary { get; set; }
        public virtual List<RatingReviewResponse> Reviews { get; set; }
        public virtual List<ServiceResourceTypeResponse> ResourceTypes { get; set; }
        public virtual ResponseStatus ResponseStatus { get; set; }
        public virtual int? PriceViewTypeId { get; set; }
    }

    public partial class ServiceResourceTypeResource
    {
        ///<summary>
        ///The resource id
        ///</summary>
        [ApiMember(Description="The resource id")]
        public virtual int Id { get; set; }

        ///<summary>
        ///The resource name
        ///</summary>
        [ApiMember(Description="The resource name")]
        public virtual string Name { get; set; }

        ///<summary>
        ///The resource description
        ///</summary>
        [ApiMember(Description="The resource description")]
        public virtual string Description { get; set; }

        ///<summary>
        ///The resource email
        ///</summary>
        [ApiMember(Description="The resource email")]
        public virtual string Email { get; set; }

        ///<summary>
        ///The resource phone
        ///</summary>
        [ApiMember(Description="The resource phone")]
        public virtual string Phone { get; set; }

        ///<summary>
        ///The resource color
        ///</summary>
        [ApiMember(Description="The resource color")]
        public virtual string Color { get; set; }

        ///<summary>
        ///The resource image
        ///</summary>
        [ApiMember(Description="The resource image")]
        public virtual Uri ImageUrl { get; set; }

        ///<summary>
        ///The priority of the resource
        ///</summary>
        [ApiMember(Description="The priority of the resource")]
        public virtual int Priority { get; set; }

        ///<summary>
        ///If the resource want to receive email notifications
        ///</summary>
        [ApiMember(Description="If the resource want to receive email notifications")]
        public virtual bool EmailNotification { get; set; }

        ///<summary>
        ///If the resource want to receive sms notifications
        ///</summary>
        [ApiMember(Description="If the resource want to receive sms notifications")]
        public virtual bool SMSNotification { get; set; }

        ///<summary>
        ///If the resource want to receive email reminders
        ///</summary>
        [ApiMember(Description="If the resource want to receive email reminders")]
        public virtual bool EmailReminder { get; set; }

        ///<summary>
        ///If the resource want to receive sms reminders
        ///</summary>
        [ApiMember(Description="If the resource want to receive sms reminders")]
        public virtual bool SMSReminder { get; set; }
    }

    public partial class ServiceResourceTypeResponse
    {
        public ServiceResourceTypeResponse()
        {
            Resources = new List<ServiceResourceTypeResource>{};
        }

        ///<summary>
        ///The resourcetype id
        ///</summary>
        [ApiMember(Description="The resourcetype id")]
        public virtual int Id { get; set; }

        ///<summary>
        ///The resourcetype is selectable by customer
        ///</summary>
        [ApiMember(Description="The resourcetype is selectable by customer")]
        public virtual bool SelectableByUser { get; set; }

        ///<summary>
        ///The resourcetype name
        ///</summary>
        [ApiMember(Description="The resourcetype name")]
        public virtual string Name { get; set; }

        ///<summary>
        ///The resourcetype description
        ///</summary>
        [ApiMember(Description="The resourcetype description")]
        public virtual string Description { get; set; }

        ///<summary>
        ///The resources in the resourcetype. Only shows active resources if not admin.
        ///</summary>
        [ApiMember(Description="The resources in the resourcetype. Only shows active resources if not admin.")]
        public virtual List<ServiceResourceTypeResource> Resources { get; set; }
    }

    public partial class ServiceSchedules
    {
        public ServiceSchedules()
        {
            RecurringSchedules = new List<ISchedule>{};
            DateSchedules = new List<ISchedule>{};
        }

        public virtual ScheduleType ScheduleType { get; set; }
        public virtual List<ISchedule> RecurringSchedules { get; set; }
        public virtual List<ISchedule> DateSchedules { get; set; }
    }

}

namespace BokaMera.API.ServiceModel.Enums
{
    public enum ArticleTypeEnum
    {
        ServiceArticle = 1,
        StandAloneArticle = 2,
        RebateCodePunchTicketArticle = 3,
        RebateCodeGiftCardArticle = 4,
        RebateCodeValueCardArticle = 5,
    }

    public enum BokaMeraDayOfWeek
    {
        Monday = 1,
        Tuesday = 2,
        Wednesday = 3,
        Thursday = 4,
        Friday = 5,
        Saturday = 6,
        Sunday = 7,
    }

    public enum BookingStatusEnum
    {
        Booked = 1,
        Unbooked = 2,
        Reserved = 3,
        Canceled = 4,
        AwaitingPayment = 5,
        AwaitingPaymentNoTimeLimit = 6,
        Payed = 7,
        AwaitingPaymentRequestFromAdmin = 8,
        AwaitingPaymentFromProvider = 9,
        Invoiced = 10,
    }

    public enum CompanyStatus
    {
        Registered = 1,
        AwaitingApproval = 2,
        Approved = 3,
        Inactive = 4,
        ClosedDown = 5,
        NotApproved = 6,
    }

    public enum ScheduleType
    {
        NotDefined,
        RecurringSchedule,
        DateSchedule,
    }

}

namespace BokaMera.API.ServiceModel.Helpers.Payment
{
    public partial interface IBokameraPaymentManager<TCreatedCheckoutResponse, TCheckoutResponse, TPaymentResponse>
    {
    }

}

namespace BokaMera.API.ServiceModel.Helpers.Payson1Payment
{
    public partial interface IPaysonPaymentCheckout1
    {
    }

}

namespace BokaMera.API.ServiceModel.Interfaces
{
    public partial interface IBookedTime
        : IInterval
    {
        int Id { get; set; }
        int ServiceId { get; set; }
        int BookedSpots { get; set; }
        int TotalSpots { get; set; }
        int PauseAfterInMinutes { get; set; }
        BookingStatusEnum Status { get; set; }
        int StatusId { get; set; }
        BookedCustomer Customer { get; set; }
    }

    public partial interface ISchedule
    {
        IList<Resource> Resources { get; set; }
        ScheduleType Type { get; set; }
        bool Active { get; set; }
        bool IsResourceSpecific { get; set; }
    }

    public partial interface ITimeException
        : IInterval
    {
        int Id { get; set; }
        string ReasonText { get; set; }
        bool IsBlock { get; set; }
        string ReasonTextPublic { get; set; }
        bool IsRecurring { get; set; }
        int[] ResourceIds { get; set; }
    }

}

namespace Microsoft.Extensions.Logging
{
    public partial interface ILogger<TCategoryName>
        : ILogger
    {
    }

}

namespace PaysonIntegrationCO2.Models
{
    public partial class Customer
    {
        public virtual string City { get; set; }
        public virtual string CountryCode { get; set; }
        public virtual string IdentityNumber { get; set; }
        public virtual string Email { get; set; }
        public virtual string FirstName { get; set; }
        public virtual string LastName { get; set; }
        public virtual string Phone { get; set; }
        public virtual string PostalCode { get; set; }
        public virtual string Street { get; set; }
        public virtual string Reference { get; set; }
        public virtual CustomerType Type { get; set; }
    }

    public partial class Gui
    {
        public virtual ColorScheme ColorScheme { get; set; }
        public virtual string Locale { get; set; }
        public virtual bool RequestPhone { get; set; }
        public virtual bool PhoneOptional { get; set; }
    }

    public partial class History
    {
        public virtual DateTime? Created { get; set; }
        public virtual DateTime? ReadyToPay { get; set; }
        public virtual DateTime? ReadyToShip { get; set; }
        public virtual DateTime? Shipped { get; set; }
        public virtual DateTime? PaidToAccount { get; set; }
        public virtual DateTime? Canceled { get; set; }
        public virtual DateTime? Expired { get; set; }
        public virtual DateTime? Denied { get; set; }
    }

    public partial class Item
    {
        public virtual Guid ItemId { get; set; }
        public virtual decimal DiscountRate { get; set; }
        public virtual string Ean { get; set; }
        public virtual Uri ImageUri { get; set; }
        public virtual string Name { get; set; }
        public virtual decimal Quantity { get; set; }
        public virtual string Reference { get; set; }
        public virtual decimal TaxRate { get; set; }
        public virtual decimal TotalPriceExcludingTax { get; set; }
        public virtual decimal TotalPriceIncludingTax { get; set; }
        public virtual decimal TotalTaxAmount { get; set; }
        public virtual decimal CreditedAmount { get; set; }
        public virtual ItemType Type { get; set; }
        public virtual decimal UnitPrice { get; set; }
        public virtual Uri Uri { get; set; }
    }

    public partial class Merchant
    {
        public virtual Uri CheckoutUri { get; set; }
        public virtual Uri ConfirmationUri { get; set; }
        public virtual Uri NotificationUri { get; set; }
        public virtual Uri ValidationUri { get; set; }
        public virtual Uri TermsUri { get; set; }
        public virtual string Reference { get; set; }
        public virtual string PartnerId { get; set; }
    }

    public partial class Order
    {
        public virtual Currency Currency { get; set; }
        public virtual decimal TotalFeeExcludingTax { get; set; }
        public virtual decimal TotalFeeIncludingTax { get; set; }
        public virtual decimal TotalPriceExcludingTax { get; set; }
        public virtual decimal TotalPriceIncludingTax { get; set; }
        public virtual decimal TotalTaxAmount { get; set; }
        public virtual decimal TotalCreditedAmount { get; set; }
        public virtual IList<Item> Items { get; set; }
    }

    public partial class Payson2CheckoutResponse
    {
        public virtual Guid Id { get; set; }
        public virtual DateTime? ExpirationTime { get; set; }
        public virtual string Snippet { get; set; }
        public virtual Payson2CheckoutStatus Status { get; set; }
        public virtual Customer Customer { get; set; }
        public virtual Order Order { get; set; }
        public virtual Merchant Merchant { get; set; }
        public virtual Gui Gui { get; set; }
        public virtual History History { get; set; }
        public virtual int? PurchaseId { get; set; }
    }

}

namespace PaysonIntegrationCO2.Models.Enums
{
    public enum ColorScheme
    {
        White,
        Blue,
        Gray,
        GrayTextLogos,
        BlueTextLogos,
        WhiteTextLogos,
        WhiteNoFooter,
        GrayNoFooter,
        BlueNoFooter,
    }

    public enum Currency
    {
        SEK = 1,
        EUR = 2,
    }

    public enum CustomerType
    {
        Person,
        Business,
    }

    public enum ItemType
    {
        Physical,
        Service,
        Fee,
        Discount,
    }

    public enum Payson2CheckoutStatus
    {
        None,
        Created,
        FormsFilled,
        ReadyToPay,
        ProcessingPayment,
        ReadyToShip,
        Shipped,
        PaidToAccount,
        Canceled,
        Credited,
        Expired,
        Denied,
    }

}

namespace QvicklyIntegration.Models.Checkout
{
    public partial class Cart
    {
        public virtual CartHandling Handling { get; set; }
        public virtual CartTotal Total { get; set; }
        public virtual Shipping Shipping { get; set; }
    }

    public partial class CartHandling
    {
        public virtual string withouttax { get; set; }
        public virtual string taxrate { get; set; }
    }

    public partial class CartTotal
    {
        public virtual string rounding { get; set; }
        public virtual string withouttax { get; set; }
        public virtual string tax { get; set; }
        public virtual string withtax { get; set; }
    }

    public partial class CheckoutData
    {
        public virtual Uri terms { get; set; }
        public virtual Uri privacyPolicy { get; set; }
        public virtual string redirectOnSuccess { get; set; }
    }

    public partial class CheckoutPaymentData
    {
        public virtual string currency { get; set; }
        public virtual string language { get; set; }
        public virtual string country { get; set; }
        public virtual string autoactivate { get; set; }
        public virtual string orderid { get; set; }
        public virtual string returnmethod { get; set; }
        public virtual Uri accepturl { get; set; }
        public virtual Uri cancelurl { get; set; }
        public virtual Uri callbackurl { get; set; }
    }

    public partial class InitCheckoutData
    {
        public InitCheckoutData()
        {
            Articles = new QvicklyArticle[]{};
        }

        public virtual CheckoutData CheckoutData { get; set; }
        public virtual CheckoutPaymentData PaymentData { get; set; }
        public virtual PaymentInfo PaymentInfo { get; set; }
        public virtual QvicklyArticle[] Articles { get; set; }
        public virtual Cart Cart { get; set; }
        public virtual QvicklyCustomer QvicklyCustomer { get; set; }
    }

    public partial class InitCheckoutRequestBody
    {
        public virtual Credentials credentials { get; set; }
        public virtual InitCheckoutData data { get; set; }
        public virtual string function { get; set; }
    }

    public partial class QvicklyCheckoutResponse
    {
        public virtual int Number { get; set; }
        public virtual string Status { get; set; }
        public virtual string OrderId { get; set; }
        public virtual string Url { get; set; }
    }

    public partial class Shipping
    {
        public virtual string firstname { get; set; }
        public virtual string lastname { get; set; }
        public virtual string company { get; set; }
        public virtual string street { get; set; }
        public virtual string street2 { get; set; }
        public virtual string zip { get; set; }
        public virtual string city { get; set; }
        public virtual string country { get; set; }
        public virtual string phone { get; set; }
        public virtual string withouttax { get; set; }
        public virtual string taxrate { get; set; }
    }

}

namespace QvicklyIntegration.Models.Common
{
    public partial class Credentials
    {
        public virtual string hash { get; set; }
        public virtual string id { get; set; }
        public virtual string version { get; set; }
        public virtual string client { get; set; }
        public virtual ServerData serverdata { get; set; }
        public virtual string time { get; set; }
        public virtual string test { get; set; }
        public virtual string language { get; set; }
    }

    public partial class QvicklyArticle
    {
        public virtual string artnr { get; set; }
        public virtual string title { get; set; }
        public virtual int quantity { get; set; }
        public virtual int aprice { get; set; }
        public virtual int tax { get; set; }
        public virtual int discount { get; set; }
        public virtual int withouttax { get; set; }
        public virtual int taxrate { get; set; }
    }

    public partial class ServerData
    {
        public virtual string HTTP_HOST { get; set; }
        public virtual string HTTP_CONNECTION { get; set; }
        public virtual string HTTP_CACHE_CONTROL { get; set; }
        public virtual string HTTP_ACCEPT { get; set; }
        public virtual string HTTP_USER_AGENT { get; set; }
        public virtual string HTTP_ACCEPT_ENCODING { get; set; }
        public virtual string HTTP_ACCEPT_LANGUAGE { get; set; }
        public virtual string PATH { get; set; }
        public virtual string SERVER_SOFTWARE { get; set; }
        public virtual string SERVER_NAME { get; set; }
        public virtual string SERVER_ADDR { get; set; }
        public virtual string SERVER_PORT { get; set; }
        public virtual string REMOTE_ADDR { get; set; }
        public virtual string REMOTE_PORT { get; set; }
        public virtual string GATEWAY_INTERFACE { get; set; }
        public virtual string SERVER_PROTOCOL { get; set; }
        public virtual string REQUEST_METHOD { get; set; }
        public virtual string QUERY_STRING { get; set; }
        public virtual string REQUEST_TIME { get; set; }
    }

}

namespace QvicklyIntegration.Models.Payment
{
    public partial class Card
    {
        public virtual string promptname { get; set; }
        public virtual string recurring { get; set; }
        public virtual string recurringnr { get; set; }
        public virtual string accepturl { get; set; }
        public virtual string cancelurl { get; set; }
        public virtual string callbackurl { get; set; }
        public virtual string returnmethod { get; set; }
    }

    public partial class CustomerBilling
    {
        public virtual string firstname { get; set; }
        public virtual string lastname { get; set; }
        public virtual string company { get; set; }
        public virtual string street { get; set; }
        public virtual string street2 { get; set; }
        public virtual string zip { get; set; }
        public virtual string city { get; set; }
        public virtual string country { get; set; }
        public virtual string phone { get; set; }
        public virtual string email { get; set; }
    }

    public partial class PaymentInfo
    {
        public virtual string paymentdate { get; set; }
        public virtual string paymentterms { get; set; }
        public virtual string yourreference { get; set; }
        public virtual string ourreference { get; set; }
        public virtual string projectname { get; set; }
        public virtual string deliverymethod { get; set; }
        public virtual string deliveryterms { get; set; }
    }

    public partial class QvicklyCustomer
    {
        public virtual string nr { get; set; }
        public virtual string pno { get; set; }
        public virtual CustomerBilling Billing { get; set; }
    }

    public partial class QvicklyPaymentResponse
    {
        public QvicklyPaymentResponse()
        {
            Articles = new QvicklyArticle[]{};
        }

        public virtual QvikclyPaymentData PaymentData { get; set; }
        public virtual PaymentInfo PaymentInfo { get; set; }
        public virtual Card Card { get; set; }
        public virtual Settlement Settlement { get; set; }
        public virtual QvicklyCustomer QvicklyCustomer { get; set; }
        public virtual QvicklyArticle[] Articles { get; set; }
        public virtual Cart Cart { get; set; }
    }

    public partial class QvikclyPaymentData
    {
        public virtual string method { get; set; }
        public virtual string paymentplanid { get; set; }
        public virtual string currency { get; set; }
        public virtual string country { get; set; }
        public virtual string language { get; set; }
        public virtual string autoactivate { get; set; }
        public virtual string orderid { get; set; }
        public virtual string status { get; set; }
        public virtual string paymentid_related { get; set; }
        public virtual string url { get; set; }
    }

    public partial class Settlement
    {
        public virtual string number { get; set; }
        public virtual string date { get; set; }
    }

}

namespace ServiceStack
{
    [DataContract]
    public partial class QueryBase
    {
        public QueryBase()
        {
            Meta = new Dictionary<string, string>{};
        }

        ///<summary>
        ///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>
        ///</summary>
        [DataMember(Order=1)]
        public virtual int? Skip { get; set; }

        ///<summary>
        ///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>
        ///</summary>
        [DataMember(Order=2)]
        public virtual int? Take { get; set; }

        ///<summary>
        ///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>
        ///</summary>
        [DataMember(Order=3)]
        public virtual string OrderBy { get; set; }

        ///<summary>
        ///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>
        ///</summary>
        [DataMember(Order=4)]
        public virtual string OrderByDesc { get; set; }

        ///<summary>
        ///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>
        ///</summary>
        [DataMember(Order=5)]
        public virtual string Include { get; set; }

        [DataMember(Order=6)]
        public virtual string Fields { get; set; }

        [DataMember(Order=7)]
        public virtual Dictionary<string, string> Meta { get; set; }
    }

    public partial class QueryDb<From, Into>
        : QueryBase
    {
    }

    [DataContract]
    public partial class QueryResponse<AccessKeyTypeResponse>
    {
        public QueryResponse()
        {
            Results = new List<AccessKeyTypeResponse>{};
            Meta = new Dictionary<string, string>{};
        }

        [DataMember(Order=1)]
        public virtual int Offset { get; set; }

        [DataMember(Order=2)]
        public virtual int Total { get; set; }

        [DataMember(Order=3)]
        public virtual List<AccessKeyTypeResponse> Results { get; set; }

        [DataMember(Order=4)]
        public virtual Dictionary<string, string> Meta { get; set; }

        [DataMember(Order=5)]
        public virtual ResponseStatus ResponseStatus { get; set; }
    }

}

namespace ServiceStack.Data
{
    public partial interface IDbConnectionFactory
    {
    }

}

C# ServiceQuery DTOs

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

HTTP + CSV

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

GET /services HTTP/1.1 
Host: api.bokamera.se 
Accept: text/csv
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Offset":0,"Total":0,"Results":[{"Id":0,"Name":"String","Description":"String","TotalSpots":0,"LockSpotsToBooking":false,"MinNumberOfSpotsPerBooking":0,"MaxNumberOfSpotsPerBooking":0,"MinNumberOfResourcesToBook":0,"MaxNumberOfResourcesToBook":0,"UnbookBeforeDays":0,"UnbookBeforeHours":0,"UnbookBeforeMinutes":0,"ScheduleType":"NotDefined","ScheduleTypeId":0,"BookBeforeDays":0,"BookBeforeHours":0,"BookBeforeMinutes":0,"Group":"String","EnableBookingQueue":false,"EnableCodeLockSync":false,"EnableCustomerManualPayment":false,"SortOrder":0,"Active":false,"IsGroupBooking":false,"GroupBooking":{"Active":false,"Min":0,"Max":0},"MultipleResource":{"Active":false,"Min":0,"Max":0},"IsPaymentEnabled":false,"MaxPaymentTime":0,"BookingStatusId":0,"OnlyVisibleByAdmin":false,"LengthInMinutes":0,"DurationTypeId":0,"Duration":0,"MinDuration":0,"MaxDuration":0,"DurationInterval":0,"PauseAfterBooking":0,"CustomFields":[{"Id":0,"Name":"String","Description":"String","Width":0,"DataType":"String","DefaultValue":"String","IsMandatory":false,"MandatoryErrorMessage":"String","MaxLength":0,"MultipleLineText":false,"RegEx":"String","RegExErrorMessage":"String","Values":[{"Value":"String"}]}],"CustomFieldValues":[{"Id":0,"Column":"String","Name":"String","Description":"String","Value":"String","DataType":"String"}],"BookingCustomFields":[{"Id":0,"Name":"String","Description":"String","Width":0,"DataType":"String","DefaultValue":"String","IsMandatory":false,"MandatoryErrorMessage":"String","MaxLength":0,"MultipleLineText":false,"RegEx":"String","RegExErrorMessage":"String","Values":[{"Value":"String"}]}],"CustomerCustomFields":[{"Id":0,"Name":"String","Description":"String","Width":0,"DataType":"String","DefaultValue":"String","IsMandatory":false,"MandatoryErrorMessage":"String","MaxLength":0,"MultipleLineText":false,"RegEx":"String","RegExErrorMessage":"String","Values":[{"Value":"String"}]}],"BookingStatusOptions":[{"Id":0,"Name":"String","Description":"String"}],"Prices":[{"Id":0,"ServiceId":0,"Price":0,"CalculationTypeId":0,"CurrencyId":"String","PriceSign":"String","VAT":0,"Category":"String","PriceText":"String","DaysOfWeek":[{"DayOfWeekId":0,"DotNetDayOfWeekId":0,"DayOfWeek":"String"}],"FromTime":"00:00:00","ToTime":"00:00:00","Service":{"Id":0,"Name":"String","Description":"String","LengthInMinutes":0,"MaxNumberOfSpotsPerBooking":0,"MinNumberOfSpotsPerBooking":0,"GroupBooking":{"Active":false,"Min":0,"Max":0},"MultipleResource":{"Active":false,"Min":0,"Max":0},"IsGroupBooking":false,"IsPaymentEnabled":false},"IsTimeSpecific":false,"IsDaysOfWeekSpecific":false}],"Schedules":{"ScheduleType":"NotDefined","RecurringSchedules":[{}],"DateSchedules":[{}]},"RatingSummary":{"AverageScore":0,"RatingScore1Count":0,"RatingScore2Count":0,"RatingScore3Count":0,"RaingScore4Count":0,"RatingScore5Count":0,"Count":0},"Reviews":[{"Title":"String","Description":"String","RatingScore":0,"Author":"String","ReviewAnswer":"String"}],"ResourceTypes":[{"Id":0,"SelectableByUser":false,"Name":"String","Description":"String","Resources":[{"Id":0,"Name":"String","Description":"String","Email":"String","Phone":"String","Color":"String","Priority":0,"EmailNotification":false,"SMSNotification":false,"EmailReminder":false,"SMSReminder":false}]}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"PriceViewTypeId":0}],"Meta":{"String":"String"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}