BokaMera.API.Host

<back to all web services

CompanyInvoiceQuery

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, bookingsupplier-administrator-read, superadmin
The following routes are available for this service:
GET/billing/company/invoicesGet all company invoices for the subscriptionGet all company invoices for the subscription you have assigned to.
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.Enums;
using BokaMera.API.ServiceModel.Interfaces;
using QvicklyIntegration.Models.Checkout;
using PaysonIntegrationCO2.Models;
using PaysonIntegrationCO2.Models.Enums;

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 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 BillingInformation
        : BaseModel
    {
        public virtual BillingMethod BillingMethod { get; set; }
        [Required]
        public virtual int BillingMethodId { get; set; }

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

        public virtual string Attention { 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 Email { get; set; }
        public virtual string CreditCard { get; set; }
        public virtual string CreditCardHolder { get; set; }
        public virtual string CreditCardNumber { get; set; }
        public virtual short? ValidToYear { get; set; }
        public virtual short? ValidToMonth { get; set; }
        public virtual string CSV { get; set; }
        [Required]
        public virtual DateTime Updated { get; set; }

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

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

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

        public virtual string VATRegistrationNumber { get; set; }
        public virtual string GLN { get; set; }
        public virtual string ReferenceLine1 { get; set; }
        public virtual string ReferenceLine2 { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual Guid Id { get; set; }
    }

    public partial class BillingMethod
        : BaseModel
    {
        public BillingMethod()
        {
            BillingMethodCountriesRelation = new List<BillingMethodCountriesRelation>{};
        }

        public virtual List<BillingMethodCountriesRelation> BillingMethodCountriesRelation { get; set; }
        [Required]
        public virtual string Name { get; set; }

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

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

    public partial class BillingMethodCountriesRelation
        : BaseModel
    {
        [Required]
        public virtual int BillingMethodId { get; set; }

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

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

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

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

        [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<PaymentLog> PaymentLog { 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; }

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

        [References(typeof(BokaMera.API.ServiceModel.Db.Currency))]
        public virtual string CurrencyId { 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 bool Active { get; set; }

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

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

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

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

        [Required]
        public virtual Guid CompanyId { 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; }
        public virtual decimal? PriceVat { 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 CompanyInvoice
        : BaseModel
    {
        public CompanyInvoice()
        {
            InvoiceLines = new List<CompanyInvoiceLine>{};
            ExternalReferences = new List<ExternalReference>{};
        }

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

        public virtual Currency CurrencyInfo { get; set; }
        public virtual InvoiceStatus InvoiceStatus { get; set; }
        [Ignore]
        public virtual List<CompanyInvoiceLine> InvoiceLines { get; set; }

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

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

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

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

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

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

        public virtual DateTime? DueDate { get; set; }
        [Required]
        public virtual DateTime PeriodFrom { get; set; }

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

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

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

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

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

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

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

        public virtual string ContactPerson { get; set; }
        public virtual string Street1 { get; set; }
        public virtual string Street2 { get; set; }
        public virtual string City { get; set; }
        public virtual string Zip { get; set; }
        public virtual string Country { get; set; }
        public virtual string PaymentMethod { get; set; }
        public virtual DateTime? ViewedDate { get; set; }
        public virtual string ViewedBy { get; set; }
        public virtual string Message { get; set; }
        public virtual DateTime? Updated { get; set; }
        public virtual DateTime? Created { get; set; }
        public virtual int? PromikBookInvoiceId { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }

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

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

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

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

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

        public virtual int? ArticleNumber { get; set; }
        [Required]
        public virtual string ArticleName { get; set; }

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

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

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

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

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

        public virtual DateTime? Updated { get; set; }
        public virtual DateTime? Created { get; set; }
        public virtual DateTimeOffset? ModifiedDate { 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; }
        [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 IList<CustomFieldConfig> CustomFieldsConfig { get; set; }

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

        [Ignore]
        public virtual IList<CustomerComment> Comments { 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 Guid Id { get; set; }
    }

    public partial class InvoiceStatus
        : 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 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 int Id { get; set; }
    }

    public partial class LicenseTypeItem
        : BaseModel
    {
        [Ignore]
        public virtual string Name { 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 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 int BookingId { 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 bool IsPayment { 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 int BookingId { 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
        : BaseModel
    {
        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>{};
            Customers = new List<Customer>{};
        }

        [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 RebateCodeType RebateCodeStatusInfo { 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 List<DaysOfWeek> DaysOfWeek { get; set; }

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

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

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

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

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

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

        public virtual Guid CompanyId { 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 Updated { 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 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 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 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 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 bool IsWeighted { 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 BillingInformationResponse
    {
        public BillingInformationResponse()
        {
            BillingMethodOptions = new List<BillingMethod>{};
        }

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

        ///<summary>
        ///The prefered billing method.
        ///</summary>
        [ApiMember(Description="The prefered billing method.", IsRequired=true)]
        public virtual int BillingMethodId { get; set; }

        ///<summary>
        ///The name that should be printed on the billing information, normally this would be your company name.
        ///</summary>
        [ApiMember(Description="The name that should be printed on the billing information, normally this would be your company name.")]
        public virtual string Name { get; set; }

        ///<summary>
        ///If you want to add the attention to the billing address.
        ///</summary>
        [ApiMember(Description="If you want to add the attention to the billing address.")]
        public virtual string Attention { get; set; }

        ///<summary>
        ///The street for the billing adress. This is required when having postal invoice as billing method.
        ///</summary>
        [ApiMember(Description="The street for the billing adress. This is required when having postal invoice as billing method.")]
        public virtual string Street1 { get; set; }

        ///<summary>
        ///The street for the billing adress.
        ///</summary>
        [ApiMember(Description="The street for the billing adress.")]
        public virtual string Street2 { get; set; }

        ///<summary>
        ///The zip code (postal code) for the billing adress. This is required when having postal invoice as billing method.
        ///</summary>
        [ApiMember(Description="The zip code (postal code) for the billing adress. This is required when having postal invoice as billing method.")]
        public virtual string ZipCode { get; set; }

        ///<summary>
        ///The city for the billing adress. This is required when having postal invoice as billing method.
        ///</summary>
        [ApiMember(Description="The city for the billing adress. This is required when having postal invoice as billing method.")]
        public virtual string City { get; set; }

        ///<summary>
        ///The country for the billing adress. This is required when having postal invoice as billing method.
        ///</summary>
        [ApiMember(Description="The country for the billing adress. This is required when having postal invoice as billing method.")]
        public virtual string CountryId { get; set; }

        ///<summary>
        ///The billing email. This is required when having email invoice as billing method.
        ///</summary>
        [ApiMember(Description="The billing email. This is required when having email invoice as billing method.")]
        public virtual string Email { get; set; }

        ///<summary>
        ///The company global location number.
        ///</summary>
        [ApiMember(Description="The company global location number.")]
        public virtual string GLN { get; set; }

        ///<summary>
        ///You're internal rereference.
        ///</summary>
        [ApiMember(Description="You're internal rereference.")]
        public virtual string ReferenceLine1 { get; set; }

        ///<summary>
        ///You're internal rereference.
        ///</summary>
        [ApiMember(Description="You're internal rereference.")]
        public virtual string ReferenceLine2 { get; set; }

        ///<summary>
        ///The billing payment terms in days. This is default 15 days.
        ///</summary>
        [ApiMember(Description="The billing payment terms in days. This is default 15 days.")]
        public virtual int PaymentTermsDays { get; set; }

        ///<summary>
        ///The company vat registration number.
        ///</summary>
        [ApiMember(Description="The company vat registration number.")]
        public virtual string VatRegistrationNumber { get; set; }

        ///<summary>
        ///The billing method options to choose from
        ///</summary>
        [ApiMember(Description="The billing method options to choose from")]
        public virtual List<BillingMethod> BillingMethodOptions { 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; }
    }

    [ValidateRequest("IsAuthenticated")]
    public partial class CompanyInvoiceQuery
        : QueryDb<CompanyInvoice, CompanyInvoiceQueryResponse>, ICompany
    {
        ///<summary>
        ///The company id, if empty will use the company id for the user you are logged in with.
        ///</summary>
        [ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")]
        public virtual Guid? CompanyId { get; set; }

        ///<summary>
        ///Id of the invoice
        ///</summary>
        [ApiMember(Description="Id of the invoice")]
        public virtual int? Id { get; set; }

        ///<summary>
        ///Id of the invoice
        ///</summary>
        [ApiMember(Description="Id of the invoice")]
        public virtual int? StatusId { get; set; }

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

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

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

    public partial class CompanyInvoiceQueryResponse
    {
        public CompanyInvoiceQueryResponse()
        {
            InvoiceLines = new List<InvoiceLineResponse>{};
            ExternalReferences = new List<ExternalReference>{};
        }

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

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

        ///<summary>
        ///Status of the invoice
        ///</summary>
        [ApiMember(Description="Status of the invoice")]
        public virtual int StatusId { get; set; }

        ///<summary>
        ///Date of the invoice
        ///</summary>
        [ApiMember(Description="Date of the invoice")]
        public virtual DateTime InvoiceDate { get; set; }

        ///<summary>
        ///Due date of the invoice
        ///</summary>
        [ApiMember(Description="Due date of the invoice")]
        public virtual DateTime? DueDate { get; set; }

        ///<summary>
        ///What start date of the invoice period
        ///</summary>
        [ApiMember(Description="What start date of the invoice period")]
        public virtual DateTime PeriodFrom { get; set; }

        ///<summary>
        ///What end date of the invoice period
        ///</summary>
        [ApiMember(Description="What end date of the invoice period")]
        public virtual DateTime PeriodTo { get; set; }

        ///<summary>
        ///The total amount of the invoice
        ///</summary>
        [ApiMember(Description="The total amount of the invoice")]
        public virtual double TotalAmount { get; set; }

        ///<summary>
        ///The rounding of the total amount
        ///</summary>
        [ApiMember(Description="The rounding of the total amount")]
        public virtual double Rounding { get; set; }

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

        ///<summary>
        ///The VAT registration number
        ///</summary>
        [ApiMember(Description="The VAT registration number")]
        public virtual string VATRegistrationNo { get; set; }

        ///<summary>
        ///The company registration number
        ///</summary>
        [ApiMember(Description="The company registration number")]
        public virtual string RegistrationNumber { get; set; }

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

        ///<summary>
        ///The company owner, used for grouping invoices per CompanyOwner
        ///</summary>
        [ApiMember(Description="The company owner, used for grouping invoices per CompanyOwner")]
        public virtual CompanyOwnerResponse CompanyOwner { get; set; }

        ///<summary>
        ///The company type
        ///</summary>
        [ApiMember(Description="The company type")]
        public virtual CompanyTypeResponse CompanyType { get; set; }

        ///<summary>
        ///The company contact person
        ///</summary>
        [ApiMember(Description="The company contact person")]
        public virtual string ContactPerson { get; set; }

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

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

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

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

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

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

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

        ///<summary>
        ///The invoice updated date
        ///</summary>
        [ApiMember(Description="The invoice updated date")]
        public virtual DateTime? Updated { get; set; }

        ///<summary>
        ///The reference to promikbook invoice
        ///</summary>
        [ApiMember(Description="The reference to promikbook invoice")]
        public virtual int? PromikBookInvoiceId { get; set; }

        ///<summary>
        ///Any invoice message
        ///</summary>
        [ApiMember(Description="Any invoice message")]
        public virtual string Message { get; set; }

        ///<summary>
        ///The currency information
        ///</summary>
        [ApiMember(Description="The currency information")]
        public virtual CurrencyInfoResponse CurrencyInfo { get; set; }

        ///<summary>
        ///The currency information
        ///</summary>
        [ApiMember(Description="The currency information")]
        public virtual InvoiceStatusResponse InvoiceStatus { get; set; }

        ///<summary>
        ///The currency information
        ///</summary>
        [ApiMember(Description="The currency information")]
        public virtual List<InvoiceLineResponse> InvoiceLines { get; set; }

        ///<summary>
        ///Billing information
        ///</summary>
        [ApiMember(Description="Billing information")]
        public virtual BillingInformationResponse BillingInformation { get; set; }

        public virtual List<ExternalReference> ExternalReferences { get; set; }
    }

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

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

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

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

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

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

        ///<summary>
        ///The currency id
        ///</summary>
        [ApiMember(Description="The currency id")]
        public virtual string CurrencySign { 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 InvoiceLineResponse
    {
        ///<summary>
        ///The invoice id
        ///</summary>
        [ApiMember(Description="The invoice id")]
        public virtual int InvoiceId { get; set; }

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

        ///<summary>
        ///The invoice line period from date
        ///</summary>
        [ApiMember(Description="The invoice line period from date")]
        public virtual DateTime PeriodFrom { get; set; }

        ///<summary>
        ///The invoice line period to date
        ///</summary>
        [ApiMember(Description="The invoice line period to date")]
        public virtual DateTime PeriodTo { get; set; }

        ///<summary>
        ///The invoice line article number
        ///</summary>
        [ApiMember(Description="The invoice line article number")]
        public virtual int? ArticleNumber { get; set; }

        ///<summary>
        ///The invoice line article name
        ///</summary>
        [ApiMember(Description="The invoice line article name")]
        public virtual string ArticleName { get; set; }

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

        ///<summary>
        ///The invoice line quantity
        ///</summary>
        [ApiMember(Description="The invoice line quantity")]
        public virtual int Quantity { get; set; }

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

        ///<summary>
        ///The invoice line sub total
        ///</summary>
        [ApiMember(Description="The invoice line sub total")]
        public virtual double SubTotal { get; set; }

        ///<summary>
        ///The invoice line rebate in percent
        ///</summary>
        [ApiMember(Description="The invoice line rebate in percent")]
        public virtual int Rebate { get; set; }

        ///<summary>
        ///The invoice line updated date
        ///</summary>
        [ApiMember(Description="The invoice line updated date")]
        public virtual DateTime? Updated { get; set; }

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

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

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

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

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

}

namespace BokaMera.API.ServiceModel.Enums
{
    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.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 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 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; }
    }

}

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; }
    }

}

C# CompanyInvoiceQuery DTOs

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

HTTP + OTHER

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

GET /billing/company/invoices HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Offset":0,"Total":0,"Results":[{"Id":0,"StatusId":0,"DueDate":"0001-01-01T00:00:00","TotalAmount":0,"Rounding":0,"VAT":0,"VATRegistrationNo":"String","RegistrationNumber":"String","CompanyName":"String","CompanyOwner":{"Id":0,"Name":"String"},"CompanyType":{"Id":0,"Name":"String"},"ContactPerson":"String","Street1":"String","Street2":"String","City":"String","Zip":"String","CountryId":"String","CurrencyId":"String","Created":"0001-01-01T00:00:00","Updated":"0001-01-01T00:00:00","PromikBookInvoiceId":0,"Message":"String","CurrencyInfo":{"Id":"String","Name":"String","CurrencySign":"String"},"InvoiceStatus":{"Id":0,"Name":"String","Description":"String"},"InvoiceLines":[{"InvoiceId":0,"Id":0,"ArticleNumber":0,"ArticleName":"String","ArticleDescription":"String","Quantity":0,"UnitPrice":0,"SubTotal":0,"Rebate":0,"Updated":"0001-01-01T00:00:00","Created":"0001-01-01T00:00:00"}],"BillingInformation":{"BillingMethodId":0,"Name":"String","Attention":"String","Street1":"String","Street2":"String","ZipCode":"String","City":"String","CountryId":"String","Email":"String","GLN":"String","ReferenceLine1":"String","ReferenceLine2":"String","PaymentTermsDays":0,"VatRegistrationNumber":"String","BillingMethodOptions":[{"BillingMethodCountriesRelation":[{"BillingMethodId":0,"CountryId":"String","ModifiedDate":"0001-01-01T00:00:00.0000000+00:00"}],"Name":"String","Description":"String","ModifiedDate":"0001-01-01T00:00:00.0000000+00:00","Id":0}]},"ExternalReferences":[{"ReferenceType":"String","ExternalData":"String","CreatedBy":"String","ModifiedDate":"0001-01-01T00:00:00.0000000+00:00"}]}],"Meta":{"String":"String"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}