BokaMera.API.Host

<back to all web services

CompanyQuery

The following routes are available for this service:
GET/companies
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 ServiceStack.Data;
using BokaMera.API.ServiceModel.Helpers.Payment;
using QvicklyIntegration.Models.Checkout;
using QvicklyIntegration.Models.Common;
using QvicklyIntegration.Models.Payment;
using PaysonIntegrationCO2.Models;
using PaysonIntegrationCO2.Models.Enums;
using Stripe.Checkout;
using Stripe;
using BokaMera.API.ServiceModel.Helpers.Payson1Payment;
using Microsoft.Extensions.Logging;
using BokaMera.CodeLock.Model.Api;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    public partial class BaseModel
    {
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        public virtual bool SubscribedToNewsletter { get; set; }
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        [Ignore]
        public virtual IBokameraPaymentManager<SessionCreateOptions, Session, Session> StripePaymentManager { get; set; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

}

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

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

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

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

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

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

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

    public partial class CompanyBookingSettings
    {
        public virtual bool EnableMobileApp { get; set; }
        public virtual string BookingReceiptMessage { get; set; }
        public virtual bool ShowFreeTimesLeft { get; set; }
        public virtual bool EnableShowBookedTimes { get; set; }
        public virtual string BookingAgreement { get; set; }
        ///<summary>
        ///The settings for how to display week number. 1 = ShowWeekNumberFromDate, 2 = ShowWeekNumberToDate, 3 = ShowWeekNumberFromToDate, 4 = DontShowWeekNumber  
        ///</summary>
        [ApiMember(DataType="int", Description="The settings for how to display week number. 1 = ShowWeekNumberFromDate, 2 = ShowWeekNumberToDate, 3 = ShowWeekNumberFromToDate, 4 = DontShowWeekNumber  ")]
        public virtual int WeekNumberSetting { get; set; }

        public virtual bool ShowBookedTimes { get; set; }
        ///<summary>
        ///The payment provider id. 1 = Payson Checkout 1.0, 2= Payson Checkout 2.0 ... To get the full payment provider for the company call GET /payment/settings
        ///</summary>
        [ApiMember(Description="The payment provider id. 1 = Payson Checkout 1.0, 2= Payson Checkout 2.0 ... To get the full payment provider for the company call GET /payment/settings")]
        public virtual int PaymentProviderId { get; set; }

        ///<summary>
        ///If it's only allowed for existing customers to book
        ///</summary>
        [ApiMember(DataType="boolean", Description="If it's only allowed for existing customers to book")]
        public virtual bool BookOnlyOnExistingCustomers { get; set; }

        ///<summary>
        ///If payment is enabled
        ///</summary>
        [ApiMember(DataType="boolean", Description="If payment is enabled")]
        public virtual bool PaymentEnabled { get; set; }
    }

    public partial class CompanyQuery
        : QueryDb<Company, CompanyQueryResponse>
    {
        ///<summary>
        ///Id for a specific company you want to retrieve.
        ///</summary>
        [ApiMember(Description="Id for a specific company you want to retrieve.", ParameterType="query")]
        public virtual Guid? Id { get; set; }

        ///<summary>
        ///Include companies in these categories.
        ///</summary>
        [ApiMember(Description="Include companies in these categories.", ParameterType="query")]
        public virtual int[] Categories { get; set; }

        ///<summary>
        ///Search nearby this latitude coordinate.
        ///</summary>
        [ApiMember(Description="Search nearby this latitude coordinate.", ParameterType="query")]
        public virtual double? Latitude { get; set; }

        ///<summary>
        ///Search nearby this longitude coordinate.
        ///</summary>
        [ApiMember(Description="Search nearby this longitude coordinate.", ParameterType="query")]
        public virtual double? Longitude { get; set; }

        ///<summary>
        ///The site path url for the company homepage
        ///</summary>
        [ApiMember(Description="The site path url for the company homepage", ParameterType="query")]
        public virtual string SitePath { get; set; }

        ///<summary>
        ///Search active companies. You're only allowed to search active companies.
        ///</summary>
        [ApiMember(Description="Search active companies. You're only allowed to search active companies.", ParameterType="query")]
        public virtual bool Active { get; set; }

        ///<summary>
        ///The organisation number for the company
        ///</summary>
        [ApiMember(Description="The organisation number for the company", ParameterType="query")]
        public virtual string OrganisationNumber { get; set; }

        ///<summary>
        ///Maxium distance from the coordinates to be included in the result.
        ///</summary>
        [ApiMember(Description="Maxium distance from the coordinates to be included in the result.", ParameterType="query")]
        public virtual double? Distance { get; set; }

        ///<summary>
        ///Will search by any company name or city that contains the search string provided.
        ///</summary>
        [ApiMember(Description="Will search by any company name or city that contains the search string provided.", ParameterType="query")]
        public virtual string Search { get; set; }

        ///<summary>
        ///Will search by any company owner id. Default is 1 = BokaMera.
        ///</summary>
        [ApiMember(Description="Will search by any company owner id. Default is 1 = BokaMera.", ParameterType="query")]
        public virtual int? CompanyOwnerId { get; set; }

        ///<summary>
        ///If you want to get the booking agreements loaded into the field BookingAgreements
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to get the booking agreements loaded into the field BookingAgreements", ParameterType="query")]
        public virtual bool IncludeBookingAgreements { get; set; }

        ///<summary>
        ///If you want to get the code lock system used by the company
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to get the code lock system used by the company", ParameterType="query")]
        public virtual bool IncludeCodeLockSystem { get; set; }

        ///<summary>
        ///If you want to get the booking settings loaded into the field BookingSettings
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to get the booking settings loaded into the field BookingSettings", ParameterType="query")]
        public virtual bool IncludeBookingSettings { get; set; }

        ///<summary>
        ///If you want to get the system settings loaded into the field SystemSettings
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to get the system settings loaded into the field SystemSettings", ParameterType="query")]
        public virtual bool IncludeSystemSettings { get; set; }

        ///<summary>
        ///If you want to get the widget settings loaded into the field WidgetSettings
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to get the widget settings loaded into the field WidgetSettings", ParameterType="query")]
        public virtual bool IncludeWidgetSettings { get; set; }

        ///<summary>
        ///If you want to get the homepage settings loaded into the field HomepageSettings
        ///</summary>
        [ApiMember(DataType="boolean", Description="If you want to get the homepage settings loaded into the field HomepageSettings", ParameterType="query")]
        public virtual bool IncludeHomepageSettings { get; set; }

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

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

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

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

        public virtual ResponseStatus ResponseStatus { get; set; }
    }

    public partial class CompanyQueryResponse
    {
        public CompanyQueryResponse()
        {
            Reviews = new List<RatingReviewResponse>{};
            CustomerCustomFields = new List<CustomFieldConfigData>{};
        }

        public virtual Guid Id { get; set; }
        public virtual string Name { get; set; }
        ///<summary>
        ///The organisation number will only be visible if your owner to the company
        ///</summary>
        [ApiMember(DataType="string", Description="The organisation number will only be visible if your owner to the company")]
        public virtual string OrganisationNumber { get; set; }

        ///<summary>
        ///What type of company. If it's used for personal use or as a company.
        ///</summary>
        [ApiMember(DataType="int", Description="What type of company. If it's used for personal use or as a company.")]
        public virtual int? TypeId { get; set; }

        public virtual string Details { get; set; }
        public virtual int CategoryId { get; set; }
        public virtual string Category { get; set; }
        public virtual Uri LogoType { get; set; }
        public virtual Uri CoverImage { 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 CountryId { get; set; }
        public virtual string Longitude { get; set; }
        public virtual string Latitude { get; set; }
        public virtual double? Distance { get; set; }
        public virtual string Phone { get; set; }
        public virtual string Email { get; set; }
        public virtual string Homepage { get; set; }
        public virtual string SitePath { get; set; }
        public virtual bool Active { get; set; }
        public virtual CodeLockSystemType? CodeLockSystem { get; set; }
        public virtual bool IsFreeAccount { get; set; }
        ///<summary>
        ///Will show when the company was updated, note it will only be shown if your logged in as admin for the company.
        ///</summary>
        [ApiMember(DataType="datetime", Description="Will show when the company was updated, note it will only be shown if your logged in as admin for the company.")]
        public virtual DateTime? Updated { get; set; }

        ///<summary>
        ///Will show when the company was created, note it will only be shown if your logged in as admin for the company.
        ///</summary>
        [ApiMember(DataType="datetime", Description="Will show when the company was created, note it will only be shown if your logged in as admin for the company.")]
        public virtual DateTime? Created { get; set; }

        public virtual int StatusId { get; set; }
        ///<summary>
        ///If the company is marked as favourite for the logged in user
        ///</summary>
        [ApiMember(DataType="boolean", Description="If the company is marked as favourite for the logged in user")]
        public virtual bool IsFavorite { get; set; }

        public virtual string BookingAgreements { get; set; }
        public virtual CompanyBookingSettings BookingSettings { get; set; }
        public virtual CompanySystemSettings SystemSettings { get; set; }
        public virtual CompanyWidgetSettings WidgetSettings { get; set; }
        public virtual HomepageSettingsResponse HomepageSettings { get; set; }
        public virtual CompanyRatingSummary RatingSummary { get; set; }
        public virtual List<RatingReviewResponse> Reviews { get; set; }
        public virtual List<CustomFieldConfigData> CustomerCustomFields { get; set; }
        public virtual ResponseStatus ResponseStatus { get; set; }
    }

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

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

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

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

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

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

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

    public partial class CompanySystemSettings
    {
        ///<summary>
        ///If the booking is active or not
        ///</summary>
        [ApiMember(DataType="bool", Description="If the booking is active or not")]
        public virtual bool Active { get; set; }

        ///<summary>
        ///If the booking is not active, what message to show to the customers
        ///</summary>
        [ApiMember(DataType="string", Description="If the booking is not active, what message to show to the customers")]
        public virtual string InactiveMessage { get; set; }

        ///<summary>
        ///If the company should be visible in search results on hompage
        ///</summary>
        [ApiMember(DataType="bool", Description="If the company should be visible in search results on hompage")]
        public virtual bool Searchable { get; set; }

        ///<summary>
        ///If you have a google analytics account and want to track your customers behaviors.
        ///</summary>
        [ApiMember(DataType="string", Description="If you have a google analytics account and want to track your customers behaviors.")]
        public virtual string GATrackingId { get; set; }

        ///<summary>
        ///If you have a google Ads Conversion Id account and want to track your customers behaviors.
        ///</summary>
        [ApiMember(DataType="string", Description="If you have a google Ads Conversion Id account and want to track your customers behaviors.")]
        public virtual string GoogleAdsConversionId { get; set; }

        ///<summary>
        ///If you have a LinkedIn account and want to track your customers behaviors.
        ///</summary>
        [ApiMember(DataType="string", Description="If you have a LinkedIn account and want to track your customers behaviors.")]
        public virtual string LinkedinTagId { get; set; }

        ///<summary>
        ///If you have a Google Ads Conversion Label and want to track your customers behaviors.
        ///</summary>
        [ApiMember(DataType="string", Description="If you have a Google Ads Conversion Label and want to track your customers behaviors.")]
        public virtual string GoogleAdsConversionLabel { get; set; }

        ///<summary>
        ///If you have a google tag manager account and want to track your customers behaviors.
        ///</summary>
        [ApiMember(DataType="string", Description="If you have a google tag manager account and want to track your customers behaviors.")]
        public virtual string GTMTrackingId { get; set; }

        ///<summary>
        ///If you have a facebook account and want to track your customers behaviors.
        ///</summary>
        [ApiMember(DataType="string", Description="If you have a facebook account and want to track your customers behaviors.")]
        public virtual string FacebookPixelId { get; set; }

        ///<summary>
        ///If you want your customers to be albe to change language on your homepage
        ///</summary>
        [ApiMember(DataType="bool", Description="If you want your customers to be albe to change language on your homepage")]
        public virtual bool MultiLanguage { get; set; }

        ///<summary>
        ///If the company should be visible on the marketplace
        ///</summary>
        [ApiMember(DataType="bool", Description="If the company should be visible on the marketplace")]
        public virtual bool ShowOnMarketplace { get; set; }

        ///<summary>
        ///If you want your own written text on your homepage to be translated using google analytics when a user changes language
        ///</summary>
        [ApiMember(DataType="bool", Description="If you want your own written text on your homepage to be translated using google analytics when a user changes language")]
        public virtual bool EnableAPITranslation { get; set; }

        ///<summary>
        ///What is the standard language your homepage information is written in. Select from the different countries, ie. SE,NO,EN
        ///</summary>
        [ApiMember(DataType="string", Description="What is the standard language your homepage information is written in. Select from the different countries, ie. SE,NO,EN")]
        public virtual string DefaultLanguage { get; set; }
    }

    public partial class CompanyWidgetSettings
    {
        ///<summary>
        ///The service layouts id.
        ///</summary>
        [ApiMember(Description="The service layouts id.")]
        public virtual int ServiceLayoutId { get; set; }

        ///<summary>
        ///The time layouts id.
        ///</summary>
        [ApiMember(Description="The time layouts id.")]
        public virtual int TimeLayoutId { get; set; }

        ///<summary>
        ///The booking layouts id.
        ///</summary>
        [ApiMember(Description="The booking layouts id.")]
        public virtual int BookingLayoutId { get; set; }

        ///<summary>
        ///The primary color of the booking widget.
        ///</summary>
        [ApiMember(Description="The primary color of the booking widget.")]
        public virtual string PrimaryColor { get; set; }

        ///<summary>
        ///If you should show the service image in the booking widget.
        ///</summary>
        [ApiMember(Description="If you should show the service image in the booking widget.")]
        public virtual bool ShowServiceImage { get; set; }

        ///<summary>
        ///If you should show the rebate code field in the booking widget.
        ///</summary>
        [ApiMember(Description="If you should show the rebate code field in the booking widget.")]
        public virtual bool ShowRebateCodeField { get; set; }

        ///<summary>
        ///If you should show the next available time in the booking widget.
        ///</summary>
        [ApiMember(Description="If you should show the next available time in the booking widget.")]
        public virtual bool ShowNextAvailableTime { get; set; }

        ///<summary>
        ///If you should show the end time in the booking widget.
        ///</summary>
        [ApiMember(Description="If you should show the end time in the booking widget.")]
        public virtual bool ShowEndTime { get; set; }

        ///<summary>
        ///What text to show on booked time slots. Default text is Booked
        ///</summary>
        [ApiMember(Description="What text to show on booked time slots. Default text is Booked")]
        public virtual string BookedTimeSlotText { get; set; }

        ///<summary>
        ///If the widget should be displayed in dark theme
        ///</summary>
        [ApiMember(Description="If the widget should be displayed in dark theme")]
        public virtual bool DarkTheme { get; set; }
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    public partial class HomepageSettingsResponse
    {
        ///<summary>
        ///The text for homepage heading
        ///</summary>
        [ApiMember(Description="The text for homepage heading")]
        public virtual string HomepageHeading { get; set; }

        ///<summary>
        ///The text for homepage startpage heading
        ///</summary>
        [ApiMember(Description="The text for homepage startpage heading")]
        public virtual string WelcomePageHeading { get; set; }

        ///<summary>
        ///The text for homepage startpage body
        ///</summary>
        [ApiMember(Description="The text for homepage startpage body")]
        public virtual string WelcomePageBody { get; set; }

        ///<summary>
        ///The text for homepage about us page heading
        ///</summary>
        [ApiMember(Description="The text for homepage about us page heading")]
        public virtual string AboutUsPageHeading { get; set; }

        ///<summary>
        ///The text for homepage about us page body
        ///</summary>
        [ApiMember(Description="The text for homepage about us page body")]
        public virtual string AboutUsPageBody { get; set; }

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

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

        ///<summary>
        ///Show rating on the page
        ///</summary>
        [ApiMember(Description="Show rating on the page")]
        public virtual bool ShowRating { get; set; }

        ///<summary>
        ///The template for the homepage
        ///</summary>
        [ApiMember(Description="The template for the homepage")]
        public virtual int HomePageTemplateId { get; set; }

        ///<summary>
        ///The hero section style for the homepage
        ///</summary>
        [ApiMember(Description="The hero section style for the homepage")]
        public virtual int HeroSectionStyleId { get; set; }

        ///<summary>
        ///Enable the BokaMera Homepage
        ///</summary>
        [ApiMember(Description="Enable the BokaMera Homepage")]
        public virtual bool EnableHomepage { get; set; }
    }

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

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

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

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

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

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

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

}

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

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

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

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

    public enum ScheduleType
    {
        NotDefined,
        RecurringSchedule,
        DateSchedule,
    }

}

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

}

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

}

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

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

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

}

namespace BokaMera.CodeLock.Model.Api
{
    public enum CodeLockSystemType
    {
        Sample,
        RcoM5,
        AxemaVaka,
        VanderbiltOmnis,
        ParakeyParakey,
        AmidoDax,
        TelkeyTelkey,
        TechSolutionsSiedle,
        Accessy,
        Zesec,
        Enabla,
    }

}

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

}

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

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

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

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

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

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

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

}

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

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

    public enum CustomerType
    {
        Person,
        Business,
    }

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

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

}

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

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

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

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

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

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

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

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

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

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

}

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

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

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

}

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

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

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

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

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

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

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

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

}

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

        ///<summary>
        ///Skip over a given number of elements in a sequence and then return the remainder. Use this when you need paging.<br/><br/><strong>Example:</strong><br/><code>?skip=10&orderBy=Id</code>
        ///</summary>
        [DataMember(Order=1)]
        public virtual int? Skip { get; set; }

        ///<summary>
        ///Return a given number of elements in a sequence and then skip over the remainder. Use this when you need paging.<br/><br/><strong>Example:</strong><br/><code>?take=20</code>
        ///</summary>
        [DataMember(Order=2)]
        public virtual int? Take { get; set; }

        ///<summary>
        ///Comma separated list of fields to order by. Prefix the field name with a minus if you wan't to invert the sort for that field.<br/><br/><strong>Example:</strong><br/><code>?orderBy=Id,-Age,FirstName</code>
        ///</summary>
        [DataMember(Order=3)]
        public virtual string OrderBy { get; set; }

        ///<summary>
        ///Comma separated list of fields to order by in descending order. Prefix the field name with a minus if you wan't to invert the sort for that field.<br/><br/><strong>Example:</strong><br/><code>?orderByDesc=Id,-Age,FirstName</code>
        ///</summary>
        [DataMember(Order=4)]
        public virtual string OrderByDesc { get; set; }

        ///<summary>
        ///Include any of the aggregates <code>AVG, COUNT, FIRST, LAST, MAX, MIN, SUM</code> in your result set. The results will be returned in the meta field.<br/><br/><strong>Example:</strong><br/><code>?include=COUNT(*) as Total</code><br/><br/>or multiple fields with<br/><code>?include=Count(*) Total, Min(Age), AVG(Age) AverageAge</code><br/></br>or unique with<br/><code>?include=COUNT(DISTINCT LivingStatus) as UniqueStatus</code>
        ///</summary>
        [DataMember(Order=5)]
        public virtual string Include { get; set; }

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

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

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

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

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

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

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

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

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

}

namespace ServiceStack.Data
{
    public partial interface IDbConnectionFactory
    {
    }

}

namespace Stripe
{
    public partial class Address
        : StripeEntity<Address>
    {
        public virtual string City { get; set; }
        public virtual string Country { get; set; }
        public virtual string Line1 { get; set; }
        public virtual string Line2 { get; set; }
        public virtual string PostalCode { get; set; }
        public virtual string State { get; set; }
    }

    public partial class AddressOptions
        : INestedOptions
    {
        public virtual string City { get; set; }
        public virtual string Country { get; set; }
        public virtual string Line1 { get; set; }
        public virtual string Line2 { get; set; }
        public virtual string PostalCode { get; set; }
        public virtual string State { get; set; }
    }

    public partial class BaseOptions
        : INestedOptions
    {
        public BaseOptions()
        {
            Expand = new List<string>{};
        }

        public virtual List<string> Expand { get; set; }
        public virtual IDictionary<string, Object> ExtraParams { get; set; }
    }

    public partial class ChargeShippingOptions
        : INestedOptions
    {
        public virtual AddressOptions Address { get; set; }
        public virtual string Carrier { get; set; }
        public virtual string Name { get; set; }
        public virtual string Phone { get; set; }
        public virtual string TrackingNumber { get; set; }
    }

    public partial class Coupon
        : StripeEntity<Coupon>, IHasId, IHasMetadata, IHasObject
    {
        public Coupon()
        {
            CurrencyOptions = new Dictionary<string, CouponCurrencyOptions>{};
            Metadata = new Dictionary<string, string>{};
        }

        public virtual string Id { get; set; }
        public virtual string Object { get; set; }
        public virtual long? AmountOff { get; set; }
        public virtual CouponAppliesTo AppliesTo { get; set; }
        public virtual DateTime Created { get; set; }
        public virtual string Currency { get; set; }
        public virtual Dictionary<string, CouponCurrencyOptions> CurrencyOptions { get; set; }
        public virtual bool? Deleted { get; set; }
        public virtual string Duration { get; set; }
        public virtual long? DurationInMonths { get; set; }
        public virtual bool Livemode { get; set; }
        public virtual long? MaxRedemptions { get; set; }
        public virtual Dictionary<string, string> Metadata { get; set; }
        public virtual string Name { get; set; }
        public virtual decimal? PercentOff { get; set; }
        public virtual DateTime? RedeemBy { get; set; }
        public virtual long TimesRedeemed { get; set; }
        public virtual bool Valid { get; set; }
    }

    public partial class CouponAppliesTo
        : StripeEntity<CouponAppliesTo>
    {
        public CouponAppliesTo()
        {
            Products = new List<string>{};
        }

        public virtual List<string> Products { get; set; }
    }

    public partial class CouponCurrencyOptions
        : StripeEntity<CouponCurrencyOptions>
    {
        public virtual long AmountOff { get; set; }
    }

    public partial class Discount
        : StripeEntity<Discount>, IHasId, IHasObject
    {
        public virtual string Id { get; set; }
        public virtual string Object { get; set; }
        public virtual string CheckoutSession { get; set; }
        public virtual Coupon Coupon { get; set; }
        public virtual bool? Deleted { get; set; }
        public virtual DateTime? End { get; set; }
        public virtual string Invoice { get; set; }
        public virtual string InvoiceItem { get; set; }
        public virtual DateTime Start { get; set; }
        public virtual string Subscription { get; set; }
        public virtual string SubscriptionItem { get; set; }
    }

    public partial class LineItem
        : StripeEntity<LineItem>, IHasId, IHasObject
    {
        public LineItem()
        {
            Discounts = new List<LineItemDiscount>{};
            Taxes = new List<LineItemTax>{};
        }

        public virtual string Id { get; set; }
        public virtual string Object { get; set; }
        public virtual long AmountDiscount { get; set; }
        public virtual long AmountSubtotal { get; set; }
        public virtual long AmountTax { get; set; }
        public virtual long AmountTotal { get; set; }
        public virtual string Currency { get; set; }
        public virtual bool? Deleted { get; set; }
        public virtual string Description { get; set; }
        public virtual List<LineItemDiscount> Discounts { get; set; }
        public virtual Price Price { get; set; }
        public virtual long? Quantity { get; set; }
        public virtual List<LineItemTax> Taxes { get; set; }
    }

    public partial class LineItemDiscount
        : StripeEntity<LineItemDiscount>
    {
        public virtual long Amount { get; set; }
        public virtual Discount Discount { get; set; }
    }

    public partial class LineItemTax
        : StripeEntity<LineItemTax>
    {
        public virtual long Amount { get; set; }
        public virtual TaxRate Rate { get; set; }
        public virtual string TaxabilityReason { get; set; }
        public virtual long? TaxableAmount { get; set; }
    }

    public partial class Price
        : StripeEntity<Price>, IHasId, IHasMetadata, IHasObject
    {
        public Price()
        {
            CurrencyOptions = new Dictionary<string, PriceCurrencyOptions>{};
            Metadata = new Dictionary<string, string>{};
            Tiers = new List<PriceTier>{};
        }

        public virtual string Id { get; set; }
        public virtual string Object { get; set; }
        public virtual bool Active { get; set; }
        public virtual string BillingScheme { get; set; }
        public virtual DateTime Created { get; set; }
        public virtual string Currency { get; set; }
        public virtual Dictionary<string, PriceCurrencyOptions> CurrencyOptions { get; set; }
        public virtual PriceCustomUnitAmount CustomUnitAmount { get; set; }
        public virtual bool? Deleted { get; set; }
        public virtual bool Livemode { get; set; }
        public virtual string LookupKey { get; set; }
        public virtual Dictionary<string, string> Metadata { get; set; }
        public virtual string Nickname { get; set; }
        public virtual PriceRecurring Recurring { get; set; }
        public virtual string TaxBehavior { get; set; }
        public virtual List<PriceTier> Tiers { get; set; }
        public virtual string TiersMode { get; set; }
        public virtual PriceTransformQuantity TransformQuantity { get; set; }
        public virtual string Type { get; set; }
        public virtual long? UnitAmount { get; set; }
        public virtual decimal? UnitAmountDecimal { get; set; }
    }

    public partial class PriceCurrencyOptions
        : StripeEntity<PriceCurrencyOptions>
    {
        public PriceCurrencyOptions()
        {
            Tiers = new List<PriceCurrencyOptionsTier>{};
        }

        public virtual PriceCurrencyOptionsCustomUnitAmount CustomUnitAmount { get; set; }
        public virtual string TaxBehavior { get; set; }
        public virtual List<PriceCurrencyOptionsTier> Tiers { get; set; }
        public virtual long? UnitAmount { get; set; }
        public virtual decimal? UnitAmountDecimal { get; set; }
    }

    public partial class PriceCurrencyOptionsCustomUnitAmount
        : StripeEntity<PriceCurrencyOptionsCustomUnitAmount>
    {
        public virtual long? Maximum { get; set; }
        public virtual long? Minimum { get; set; }
        public virtual long? Preset { get; set; }
    }

    public partial class PriceCurrencyOptionsTier
        : StripeEntity<PriceCurrencyOptionsTier>
    {
        public virtual long? FlatAmount { get; set; }
        public virtual decimal? FlatAmountDecimal { get; set; }
        public virtual long? UnitAmount { get; set; }
        public virtual decimal? UnitAmountDecimal { get; set; }
        public virtual long? UpTo { get; set; }
    }

    public partial class PriceCustomUnitAmount
        : StripeEntity<PriceCustomUnitAmount>
    {
        public virtual long? Maximum { get; set; }
        public virtual long? Minimum { get; set; }
        public virtual long? Preset { get; set; }
    }

    public partial class PriceRecurring
        : StripeEntity<PriceRecurring>
    {
        public virtual string AggregateUsage { get; set; }
        public virtual string Interval { get; set; }
        public virtual long IntervalCount { get; set; }
        public virtual string Meter { get; set; }
        public virtual long? TrialPeriodDays { get; set; }
        public virtual string UsageType { get; set; }
    }

    public partial class PriceTier
        : StripeEntity<PriceTier>
    {
        public virtual long? FlatAmount { get; set; }
        public virtual decimal? FlatAmountDecimal { get; set; }
        public virtual long? UnitAmount { get; set; }
        public virtual decimal? UnitAmountDecimal { get; set; }
        public virtual long? UpTo { get; set; }
    }

    public partial class PriceTransformQuantity
        : StripeEntity<PriceTransformQuantity>
    {
        public virtual long DivideBy { get; set; }
        public virtual string Round { get; set; }
    }

    public partial class StripeEntity
        : IStripeEntity
    {
    }

    public partial class StripeEntity<T>
        : StripeEntity
    {
    }

    public partial class StripeList<T>
        : StripeEntity<StripeList<T>>, IHasObject
    {
    }

    public partial class TaxRate
        : StripeEntity<TaxRate>, IHasId, IHasMetadata, IHasObject
    {
        public TaxRate()
        {
            Metadata = new Dictionary<string, string>{};
        }

        public virtual string Id { get; set; }
        public virtual string Object { get; set; }
        public virtual bool Active { get; set; }
        public virtual string Country { get; set; }
        public virtual DateTime Created { get; set; }
        public virtual string Description { get; set; }
        public virtual string DisplayName { get; set; }
        public virtual decimal? EffectivePercentage { get; set; }
        public virtual bool Inclusive { get; set; }
        public virtual string Jurisdiction { get; set; }
        public virtual string JurisdictionLevel { get; set; }
        public virtual bool Livemode { get; set; }
        public virtual Dictionary<string, string> Metadata { get; set; }
        public virtual decimal Percentage { get; set; }
        public virtual string State { get; set; }
        public virtual string TaxType { get; set; }
    }

}

namespace Stripe.Checkout
{
    public partial class Session
        : StripeEntity<Session>, IHasId, IHasMetadata, IHasObject
    {
        public Session()
        {
            CustomFields = new List<SessionCustomField>{};
            Metadata = new Dictionary<string, string>{};
            PaymentMethodTypes = new List<string>{};
            ShippingOptions = new List<SessionShippingOption>{};
        }

        public virtual string Id { get; set; }
        public virtual string Object { get; set; }
        public virtual SessionAfterExpiration AfterExpiration { get; set; }
        public virtual bool? AllowPromotionCodes { get; set; }
        public virtual long? AmountSubtotal { get; set; }
        public virtual long? AmountTotal { get; set; }
        public virtual SessionAutomaticTax AutomaticTax { get; set; }
        public virtual string BillingAddressCollection { get; set; }
        public virtual string CancelUrl { get; set; }
        public virtual string ClientReferenceId { get; set; }
        public virtual string ClientSecret { get; set; }
        public virtual SessionConsent Consent { get; set; }
        public virtual SessionConsentCollection ConsentCollection { get; set; }
        public virtual DateTime Created { get; set; }
        public virtual string Currency { get; set; }
        public virtual SessionCurrencyConversion CurrencyConversion { get; set; }
        public virtual List<SessionCustomField> CustomFields { get; set; }
        public virtual SessionCustomText CustomText { get; set; }
        public virtual string CustomerCreation { get; set; }
        public virtual SessionCustomerDetails CustomerDetails { get; set; }
        public virtual string CustomerEmail { get; set; }
        public virtual DateTime ExpiresAt { get; set; }
        public virtual SessionInvoiceCreation InvoiceCreation { get; set; }
        public virtual StripeList<LineItem> LineItems { get; set; }
        public virtual bool Livemode { get; set; }
        public virtual string Locale { get; set; }
        public virtual Dictionary<string, string> Metadata { get; set; }
        public virtual string Mode { get; set; }
        public virtual string PaymentMethodCollection { get; set; }
        public virtual SessionPaymentMethodConfigurationDetails PaymentMethodConfigurationDetails { get; set; }
        public virtual SessionPaymentMethodOptions PaymentMethodOptions { get; set; }
        public virtual List<string> PaymentMethodTypes { get; set; }
        public virtual string PaymentStatus { get; set; }
        public virtual SessionPhoneNumberCollection PhoneNumberCollection { get; set; }
        public virtual string RecoveredFrom { get; set; }
        public virtual string RedirectOnCompletion { get; set; }
        public virtual string ReturnUrl { get; set; }
        public virtual SessionSavedPaymentMethodOptions SavedPaymentMethodOptions { get; set; }
        public virtual SessionShippingAddressCollection ShippingAddressCollection { get; set; }
        public virtual SessionShippingCost ShippingCost { get; set; }
        public virtual SessionShippingDetails ShippingDetails { get; set; }
        public virtual List<SessionShippingOption> ShippingOptions { get; set; }
        public virtual string Status { get; set; }
        public virtual string SubmitType { get; set; }
        public virtual string SuccessUrl { get; set; }
        public virtual SessionTaxIdCollection TaxIdCollection { get; set; }
        public virtual SessionTotalDetails TotalDetails { get; set; }
        public virtual string UiMode { get; set; }
        public virtual string Url { get; set; }
    }

    public partial class SessionAfterExpiration
        : StripeEntity<SessionAfterExpiration>
    {
        public virtual SessionAfterExpirationRecovery Recovery { get; set; }
    }

    public partial class SessionAfterExpirationOptions
        : INestedOptions
    {
        public virtual SessionAfterExpirationRecoveryOptions Recovery { get; set; }
    }

    public partial class SessionAfterExpirationRecovery
        : StripeEntity<SessionAfterExpirationRecovery>
    {
        public virtual bool AllowPromotionCodes { get; set; }
        public virtual bool Enabled { get; set; }
        public virtual DateTime? ExpiresAt { get; set; }
        public virtual string Url { get; set; }
    }

    public partial class SessionAfterExpirationRecoveryOptions
        : INestedOptions
    {
        public virtual bool? AllowPromotionCodes { get; set; }
        public virtual bool? Enabled { get; set; }
    }

    public partial class SessionAutomaticTax
        : StripeEntity<SessionAutomaticTax>
    {
        public virtual bool Enabled { get; set; }
        public virtual SessionAutomaticTaxLiability Liability { get; set; }
        public virtual string Status { get; set; }
    }

    public partial class SessionAutomaticTaxLiability
        : StripeEntity<SessionAutomaticTaxLiability>
    {
        public virtual string Type { get; set; }
    }

    public partial class SessionAutomaticTaxLiabilityOptions
        : INestedOptions
    {
        public virtual string Account { get; set; }
        public virtual string Type { get; set; }
    }

    public partial class SessionAutomaticTaxOptions
        : INestedOptions
    {
        public virtual bool? Enabled { get; set; }
        public virtual SessionAutomaticTaxLiabilityOptions Liability { get; set; }
    }

    public partial class SessionConsent
        : StripeEntity<SessionConsent>
    {
        public virtual string Promotions { get; set; }
        public virtual string TermsOfService { get; set; }
    }

    public partial class SessionConsentCollection
        : StripeEntity<SessionConsentCollection>
    {
        public virtual SessionConsentCollectionPaymentMethodReuseAgreement PaymentMethodReuseAgreement { get; set; }
        public virtual string Promotions { get; set; }
        public virtual string TermsOfService { get; set; }
    }

    public partial class SessionConsentCollectionOptions
        : INestedOptions
    {
        public virtual SessionConsentCollectionPaymentMethodReuseAgreementOptions PaymentMethodReuseAgreement { get; set; }
        public virtual string Promotions { get; set; }
        public virtual string TermsOfService { get; set; }
    }

    public partial class SessionConsentCollectionPaymentMethodReuseAgreement
        : StripeEntity<SessionConsentCollectionPaymentMethodReuseAgreement>
    {
        public virtual string Position { get; set; }
    }

    public partial class SessionConsentCollectionPaymentMethodReuseAgreementOptions
        : INestedOptions
    {
        public virtual string Position { get; set; }
    }

    public partial class SessionCreateOptions
        : BaseOptions, IHasMetadata
    {
        public SessionCreateOptions()
        {
            CustomFields = new List<SessionCustomFieldOptions>{};
            Discounts = new List<SessionDiscountOptions>{};
            LineItems = new List<SessionLineItemOptions>{};
            Metadata = new Dictionary<string, string>{};
            PaymentMethodTypes = new List<string>{};
            ShippingOptions = new List<SessionShippingOptionOptions>{};
        }

        public virtual SessionAfterExpirationOptions AfterExpiration { get; set; }
        public virtual bool? AllowPromotionCodes { get; set; }
        public virtual SessionAutomaticTaxOptions AutomaticTax { get; set; }
        public virtual string BillingAddressCollection { get; set; }
        public virtual string CancelUrl { get; set; }
        public virtual string ClientReferenceId { get; set; }
        public virtual SessionConsentCollectionOptions ConsentCollection { get; set; }
        public virtual string Currency { get; set; }
        public virtual List<SessionCustomFieldOptions> CustomFields { get; set; }
        public virtual SessionCustomTextOptions CustomText { get; set; }
        public virtual string Customer { get; set; }
        public virtual string CustomerCreation { get; set; }
        public virtual string CustomerEmail { get; set; }
        public virtual SessionCustomerUpdateOptions CustomerUpdate { get; set; }
        public virtual List<SessionDiscountOptions> Discounts { get; set; }
        public virtual DateTime? ExpiresAt { get; set; }
        public virtual SessionInvoiceCreationOptions InvoiceCreation { get; set; }
        public virtual List<SessionLineItemOptions> LineItems { get; set; }
        public virtual string Locale { get; set; }
        public virtual Dictionary<string, string> Metadata { get; set; }
        public virtual string Mode { get; set; }
        public virtual SessionPaymentIntentDataOptions PaymentIntentData { get; set; }
        public virtual string PaymentMethodCollection { get; set; }
        public virtual string PaymentMethodConfiguration { get; set; }
        public virtual SessionPaymentMethodDataOptions PaymentMethodData { get; set; }
        public virtual SessionPaymentMethodOptionsOptions PaymentMethodOptions { get; set; }
        public virtual List<string> PaymentMethodTypes { get; set; }
        public virtual SessionPhoneNumberCollectionOptions PhoneNumberCollection { get; set; }
        public virtual string RedirectOnCompletion { get; set; }
        public virtual string ReturnUrl { get; set; }
        public virtual SessionSavedPaymentMethodOptionsOptions SavedPaymentMethodOptions { get; set; }
        public virtual SessionSetupIntentDataOptions SetupIntentData { get; set; }
        public virtual SessionShippingAddressCollectionOptions ShippingAddressCollection { get; set; }
        public virtual List<SessionShippingOptionOptions> ShippingOptions { get; set; }
        public virtual string SubmitType { get; set; }
        public virtual SessionSubscriptionDataOptions SubscriptionData { get; set; }
        public virtual string SuccessUrl { get; set; }
        public virtual SessionTaxIdCollectionOptions TaxIdCollection { get; set; }
        public virtual string UiMode { get; set; }
    }

    public partial class SessionCurrencyConversion
        : StripeEntity<SessionCurrencyConversion>
    {
        public virtual long AmountSubtotal { get; set; }
        public virtual long AmountTotal { get; set; }
        public virtual decimal FxRate { get; set; }
        public virtual string SourceCurrency { get; set; }
    }

    public partial class SessionCustomerDetails
        : StripeEntity<SessionCustomerDetails>
    {
        public SessionCustomerDetails()
        {
            TaxIds = new List<SessionCustomerDetailsTaxId>{};
        }

        public virtual Address Address { get; set; }
        public virtual string Email { get; set; }
        public virtual string Name { get; set; }
        public virtual string Phone { get; set; }
        public virtual string TaxExempt { get; set; }
        public virtual List<SessionCustomerDetailsTaxId> TaxIds { get; set; }
    }

    public partial class SessionCustomerDetailsTaxId
        : StripeEntity<SessionCustomerDetailsTaxId>
    {
        public virtual string Type { get; set; }
        public virtual string Value { get; set; }
    }

    public partial class SessionCustomerUpdateOptions
        : INestedOptions
    {
        public virtual string Address { get; set; }
        public virtual string Name { get; set; }
        public virtual string Shipping { get; set; }
    }

    public partial class SessionCustomField
        : StripeEntity<SessionCustomField>
    {
        public virtual SessionCustomFieldDropdown Dropdown { get; set; }
        public virtual string Key { get; set; }
        public virtual SessionCustomFieldLabel Label { get; set; }
        public virtual SessionCustomFieldNumeric Numeric { get; set; }
        public virtual bool Optional { get; set; }
        public virtual SessionCustomFieldText Text { get; set; }
        public virtual string Type { get; set; }
    }

    public partial class SessionCustomFieldDropdown
        : StripeEntity<SessionCustomFieldDropdown>
    {
        public SessionCustomFieldDropdown()
        {
            Options = new List<SessionCustomFieldDropdownOption>{};
        }

        public virtual string DefaultValue { get; set; }
        public virtual List<SessionCustomFieldDropdownOption> Options { get; set; }
        public virtual string Value { get; set; }
    }

    public partial class SessionCustomFieldDropdownOption
        : StripeEntity<SessionCustomFieldDropdownOption>
    {
        public virtual string Label { get; set; }
        public virtual string Value { get; set; }
    }

    public partial class SessionCustomFieldDropdownOptionOptions
        : INestedOptions
    {
        public virtual string Label { get; set; }
        public virtual string Value { get; set; }
    }

    public partial class SessionCustomFieldDropdownOptions
        : INestedOptions
    {
        public SessionCustomFieldDropdownOptions()
        {
            Options = new List<SessionCustomFieldDropdownOptionOptions>{};
        }

        public virtual string DefaultValue { get; set; }
        public virtual List<SessionCustomFieldDropdownOptionOptions> Options { get; set; }
    }

    public partial class SessionCustomFieldLabel
        : StripeEntity<SessionCustomFieldLabel>
    {
        public virtual string Custom { get; set; }
        public virtual string Type { get; set; }
    }

    public partial class SessionCustomFieldLabelOptions
        : INestedOptions
    {
        public virtual string Custom { get; set; }
        public virtual string Type { get; set; }
    }

    public partial class SessionCustomFieldNumeric
        : StripeEntity<SessionCustomFieldNumeric>
    {
        public virtual string DefaultValue { get; set; }
        public virtual long? MaximumLength { get; set; }
        public virtual long? MinimumLength { get; set; }
        public virtual string Value { get; set; }
    }

    public partial class SessionCustomFieldNumericOptions
        : INestedOptions
    {
        public virtual string DefaultValue { get; set; }
        public virtual long? MaximumLength { get; set; }
        public virtual long? MinimumLength { get; set; }
    }

    public partial class SessionCustomFieldOptions
        : INestedOptions
    {
        public virtual SessionCustomFieldDropdownOptions Dropdown { get; set; }
        public virtual string Key { get; set; }
        public virtual SessionCustomFieldLabelOptions Label { get; set; }
        public virtual SessionCustomFieldNumericOptions Numeric { get; set; }
        public virtual bool? Optional { get; set; }
        public virtual SessionCustomFieldTextOptions Text { get; set; }
        public virtual string Type { get; set; }
    }

    public partial class SessionCustomFieldText
        : StripeEntity<SessionCustomFieldText>
    {
        public virtual string DefaultValue { get; set; }
        public virtual long? MaximumLength { get; set; }
        public virtual long? MinimumLength { get; set; }
        public virtual string Value { get; set; }
    }

    public partial class SessionCustomFieldTextOptions
        : INestedOptions
    {
        public virtual string DefaultValue { get; set; }
        public virtual long? MaximumLength { get; set; }
        public virtual long? MinimumLength { get; set; }
    }

    public partial class SessionCustomText
        : StripeEntity<SessionCustomText>
    {
        public virtual SessionCustomTextAfterSubmit AfterSubmit { get; set; }
        public virtual SessionCustomTextShippingAddress ShippingAddress { get; set; }
        public virtual SessionCustomTextSubmit Submit { get; set; }
        public virtual SessionCustomTextTermsOfServiceAcceptance TermsOfServiceAcceptance { get; set; }
    }

    public partial class SessionCustomTextAfterSubmit
        : StripeEntity<SessionCustomTextAfterSubmit>
    {
        public virtual string Message { get; set; }
    }

    public partial class SessionCustomTextAfterSubmitOptions
        : INestedOptions
    {
        public virtual string Message { get; set; }
    }

    public partial class SessionCustomTextOptions
        : INestedOptions
    {
        public virtual SessionCustomTextAfterSubmitOptions AfterSubmit { get; set; }
        public virtual SessionCustomTextShippingAddressOptions ShippingAddress { get; set; }
        public virtual SessionCustomTextSubmitOptions Submit { get; set; }
        public virtual SessionCustomTextTermsOfServiceAcceptanceOptions TermsOfServiceAcceptance { get; set; }
    }

    public partial class SessionCustomTextShippingAddress
        : StripeEntity<SessionCustomTextShippingAddress>
    {
        public virtual string Message { get; set; }
    }

    public partial class SessionCustomTextShippingAddressOptions
        : INestedOptions
    {
        public virtual string Message { get; set; }
    }

    public partial class SessionCustomTextSubmit
        : StripeEntity<SessionCustomTextSubmit>
    {
        public virtual string Message { get; set; }
    }

    public partial class SessionCustomTextSubmitOptions
        : INestedOptions
    {
        public virtual string Message { get; set; }
    }

    public partial class SessionCustomTextTermsOfServiceAcceptance
        : StripeEntity<SessionCustomTextTermsOfServiceAcceptance>
    {
        public virtual string Message { get; set; }
    }

    public partial class SessionCustomTextTermsOfServiceAcceptanceOptions
        : INestedOptions
    {
        public virtual string Message { get; set; }
    }

    public partial class SessionDiscountOptions
        : INestedOptions
    {
        public virtual string Coupon { get; set; }
        public virtual string PromotionCode { get; set; }
    }

    public partial class SessionInvoiceCreation
        : StripeEntity<SessionInvoiceCreation>
    {
        public virtual bool Enabled { get; set; }
        public virtual SessionInvoiceCreationInvoiceData InvoiceData { get; set; }
    }

    public partial class SessionInvoiceCreationInvoiceData
        : StripeEntity<SessionInvoiceCreationInvoiceData>, IHasMetadata
    {
        public SessionInvoiceCreationInvoiceData()
        {
            CustomFields = new List<SessionInvoiceCreationInvoiceDataCustomField>{};
            Metadata = new Dictionary<string, string>{};
        }

        public virtual List<SessionInvoiceCreationInvoiceDataCustomField> CustomFields { get; set; }
        public virtual string Description { get; set; }
        public virtual string Footer { get; set; }
        public virtual SessionInvoiceCreationInvoiceDataIssuer Issuer { get; set; }
        public virtual Dictionary<string, string> Metadata { get; set; }
        public virtual SessionInvoiceCreationInvoiceDataRenderingOptions RenderingOptions { get; set; }
    }

    public partial class SessionInvoiceCreationInvoiceDataCustomField
        : StripeEntity<SessionInvoiceCreationInvoiceDataCustomField>
    {
        public virtual string Name { get; set; }
        public virtual string Value { get; set; }
    }

    public partial class SessionInvoiceCreationInvoiceDataCustomFieldOptions
        : INestedOptions
    {
        public virtual string Name { get; set; }
        public virtual string Value { get; set; }
    }

    public partial class SessionInvoiceCreationInvoiceDataIssuer
        : StripeEntity<SessionInvoiceCreationInvoiceDataIssuer>
    {
        public virtual string Type { get; set; }
    }

    public partial class SessionInvoiceCreationInvoiceDataIssuerOptions
        : INestedOptions
    {
        public virtual string Account { get; set; }
        public virtual string Type { get; set; }
    }

    public partial class SessionInvoiceCreationInvoiceDataOptions
        : INestedOptions, IHasMetadata
    {
        public SessionInvoiceCreationInvoiceDataOptions()
        {
            AccountTaxIds = new List<string>{};
            CustomFields = new List<SessionInvoiceCreationInvoiceDataCustomFieldOptions>{};
            Metadata = new Dictionary<string, string>{};
        }

        public virtual List<string> AccountTaxIds { get; set; }
        public virtual List<SessionInvoiceCreationInvoiceDataCustomFieldOptions> CustomFields { get; set; }
        public virtual string Description { get; set; }
        public virtual string Footer { get; set; }
        public virtual SessionInvoiceCreationInvoiceDataIssuerOptions Issuer { get; set; }
        public virtual Dictionary<string, string> Metadata { get; set; }
        public virtual SessionInvoiceCreationInvoiceDataRenderingOptionsOptions RenderingOptions { get; set; }
    }

    public partial class SessionInvoiceCreationInvoiceDataRenderingOptions
        : StripeEntity<SessionInvoiceCreationInvoiceDataRenderingOptions>
    {
        public virtual string AmountTaxDisplay { get; set; }
    }

    public partial class SessionInvoiceCreationInvoiceDataRenderingOptionsOptions
        : INestedOptions
    {
        public virtual string AmountTaxDisplay { get; set; }
    }

    public partial class SessionInvoiceCreationOptions
        : INestedOptions
    {
        public virtual bool? Enabled { get; set; }
        public virtual SessionInvoiceCreationInvoiceDataOptions InvoiceData { get; set; }
    }

    public partial class SessionLineItemAdjustableQuantityOptions
        : INestedOptions
    {
        public virtual bool? Enabled { get; set; }
        public virtual long? Maximum { get; set; }
        public virtual long? Minimum { get; set; }
    }

    public partial class SessionLineItemOptions
        : INestedOptions
    {
        public SessionLineItemOptions()
        {
            DynamicTaxRates = new List<string>{};
            TaxRates = new List<string>{};
        }

        public virtual SessionLineItemAdjustableQuantityOptions AdjustableQuantity { get; set; }
        public virtual List<string> DynamicTaxRates { get; set; }
        public virtual string Price { get; set; }
        public virtual SessionLineItemPriceDataOptions PriceData { get; set; }
        public virtual long? Quantity { get; set; }
        public virtual List<string> TaxRates { get; set; }
    }

    public partial class SessionLineItemPriceDataOptions
        : INestedOptions
    {
        public virtual string Currency { get; set; }
        public virtual string Product { get; set; }
        public virtual SessionLineItemPriceDataProductDataOptions ProductData { get; set; }
        public virtual SessionLineItemPriceDataRecurringOptions Recurring { get; set; }
        public virtual string TaxBehavior { get; set; }
        public virtual long? UnitAmount { get; set; }
        public virtual decimal? UnitAmountDecimal { get; set; }
    }

    public partial class SessionLineItemPriceDataProductDataOptions
        : INestedOptions, IHasMetadata
    {
        public SessionLineItemPriceDataProductDataOptions()
        {
            Images = new List<string>{};
            Metadata = new Dictionary<string, string>{};
        }

        public virtual string Description { get; set; }
        public virtual List<string> Images { get; set; }
        public virtual Dictionary<string, string> Metadata { get; set; }
        public virtual string Name { get; set; }
        public virtual string TaxCode { get; set; }
    }

    public partial class SessionLineItemPriceDataRecurringOptions
        : INestedOptions
    {
        public virtual string Interval { get; set; }
        public virtual long? IntervalCount { get; set; }
    }

    public partial class SessionPaymentIntentDataOptions
        : INestedOptions, IHasMetadata
    {
        public SessionPaymentIntentDataOptions()
        {
            Metadata = new Dictionary<string, string>{};
        }

        public virtual long? ApplicationFeeAmount { get; set; }
        public virtual string CaptureMethod { get; set; }
        public virtual string Description { get; set; }
        public virtual Dictionary<string, string> Metadata { get; set; }
        public virtual string OnBehalfOf { get; set; }
        public virtual string ReceiptEmail { get; set; }
        public virtual string SetupFutureUsage { get; set; }
        public virtual ChargeShippingOptions Shipping { get; set; }
        public virtual string StatementDescriptor { get; set; }
        public virtual string StatementDescriptorSuffix { get; set; }
        public virtual SessionPaymentIntentDataTransferDataOptions TransferData { get; set; }
        public virtual string TransferGroup { get; set; }
    }

    public partial class SessionPaymentIntentDataTransferDataOptions
        : INestedOptions
    {
        public virtual long? Amount { get; set; }
        public virtual string Destination { get; set; }
    }

    public partial class SessionPaymentMethodConfigurationDetails
        : StripeEntity<SessionPaymentMethodConfigurationDetails>, IHasId
    {
        public virtual string Id { get; set; }
        public virtual string Parent { get; set; }
    }

    public partial class SessionPaymentMethodDataOptions
        : INestedOptions
    {
        public virtual string AllowRedisplay { get; set; }
    }

    public partial class SessionPaymentMethodOptions
        : StripeEntity<SessionPaymentMethodOptions>
    {
        public virtual SessionPaymentMethodOptionsAcssDebit AcssDebit { get; set; }
        public virtual SessionPaymentMethodOptionsAffirm Affirm { get; set; }
        public virtual SessionPaymentMethodOptionsAfterpayClearpay AfterpayClearpay { get; set; }
        public virtual SessionPaymentMethodOptionsAlipay Alipay { get; set; }
        public virtual SessionPaymentMethodOptionsAmazonPay AmazonPay { get; set; }
        public virtual SessionPaymentMethodOptionsAuBecsDebit AuBecsDebit { get; set; }
        public virtual SessionPaymentMethodOptionsBacsDebit BacsDebit { get; set; }
        public virtual SessionPaymentMethodOptionsBancontact Bancontact { get; set; }
        public virtual SessionPaymentMethodOptionsBoleto Boleto { get; set; }
        public virtual SessionPaymentMethodOptionsCard Card { get; set; }
        public virtual SessionPaymentMethodOptionsCashapp Cashapp { get; set; }
        public virtual SessionPaymentMethodOptionsCustomerBalance CustomerBalance { get; set; }
        public virtual SessionPaymentMethodOptionsEps Eps { get; set; }
        public virtual SessionPaymentMethodOptionsFpx Fpx { get; set; }
        public virtual SessionPaymentMethodOptionsGiropay Giropay { get; set; }
        public virtual SessionPaymentMethodOptionsGrabpay Grabpay { get; set; }
        public virtual SessionPaymentMethodOptionsIdeal Ideal { get; set; }
        public virtual SessionPaymentMethodOptionsKlarna Klarna { get; set; }
        public virtual SessionPaymentMethodOptionsKonbini Konbini { get; set; }
        public virtual SessionPaymentMethodOptionsLink Link { get; set; }
        public virtual SessionPaymentMethodOptionsMobilepay Mobilepay { get; set; }
        public virtual SessionPaymentMethodOptionsMultibanco Multibanco { get; set; }
        public virtual SessionPaymentMethodOptionsOxxo Oxxo { get; set; }
        public virtual SessionPaymentMethodOptionsP24 P24 { get; set; }
        public virtual SessionPaymentMethodOptionsPaynow Paynow { get; set; }
        public virtual SessionPaymentMethodOptionsPaypal Paypal { get; set; }
        public virtual SessionPaymentMethodOptionsPix Pix { get; set; }
        public virtual SessionPaymentMethodOptionsRevolutPay RevolutPay { get; set; }
        public virtual SessionPaymentMethodOptionsSepaDebit SepaDebit { get; set; }
        public virtual SessionPaymentMethodOptionsSofort Sofort { get; set; }
        public virtual SessionPaymentMethodOptionsSwish Swish { get; set; }
        public virtual SessionPaymentMethodOptionsUsBankAccount UsBankAccount { get; set; }
    }

    public partial class SessionPaymentMethodOptionsAcssDebit
        : StripeEntity<SessionPaymentMethodOptionsAcssDebit>
    {
        public virtual string Currency { get; set; }
        public virtual SessionPaymentMethodOptionsAcssDebitMandateOptions MandateOptions { get; set; }
        public virtual string SetupFutureUsage { get; set; }
        public virtual string VerificationMethod { get; set; }
    }

    public partial class SessionPaymentMethodOptionsAcssDebitMandateOptions
        : StripeEntity<SessionPaymentMethodOptionsAcssDebitMandateOptions>
    {
        public SessionPaymentMethodOptionsAcssDebitMandateOptions()
        {
            DefaultFor = new List<string>{};
        }

        public virtual string CustomMandateUrl { get; set; }
        public virtual List<string> DefaultFor { get; set; }
        public virtual string IntervalDescription { get; set; }
        public virtual string PaymentSchedule { get; set; }
        public virtual string TransactionType { get; set; }
    }

    public partial class SessionPaymentMethodOptionsAcssDebitMandateOptionsOptions
        : INestedOptions
    {
        public SessionPaymentMethodOptionsAcssDebitMandateOptionsOptions()
        {
            DefaultFor = new List<string>{};
        }

        public virtual string CustomMandateUrl { get; set; }
        public virtual List<string> DefaultFor { get; set; }
        public virtual string IntervalDescription { get; set; }
        public virtual string PaymentSchedule { get; set; }
        public virtual string TransactionType { get; set; }
    }

    public partial class SessionPaymentMethodOptionsAcssDebitOptions
        : INestedOptions
    {
        public virtual string Currency { get; set; }
        public virtual SessionPaymentMethodOptionsAcssDebitMandateOptionsOptions MandateOptions { get; set; }
        public virtual string SetupFutureUsage { get; set; }
        public virtual string VerificationMethod { get; set; }
    }

    public partial class SessionPaymentMethodOptionsAffirm
        : StripeEntity<SessionPaymentMethodOptionsAffirm>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsAffirmOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsAfterpayClearpay
        : StripeEntity<SessionPaymentMethodOptionsAfterpayClearpay>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsAfterpayClearpayOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsAlipay
        : StripeEntity<SessionPaymentMethodOptionsAlipay>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsAlipayOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsAmazonPay
        : StripeEntity<SessionPaymentMethodOptionsAmazonPay>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsAmazonPayOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsAuBecsDebit
        : StripeEntity<SessionPaymentMethodOptionsAuBecsDebit>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsAuBecsDebitOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsBacsDebit
        : StripeEntity<SessionPaymentMethodOptionsBacsDebit>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsBacsDebitOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsBancontact
        : StripeEntity<SessionPaymentMethodOptionsBancontact>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsBancontactOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsBoleto
        : StripeEntity<SessionPaymentMethodOptionsBoleto>
    {
        public virtual long ExpiresAfterDays { get; set; }
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsBoletoOptions
        : INestedOptions
    {
        public virtual long? ExpiresAfterDays { get; set; }
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsCard
        : StripeEntity<SessionPaymentMethodOptionsCard>
    {
        public virtual SessionPaymentMethodOptionsCardInstallments Installments { get; set; }
        public virtual string RequestThreeDSecure { get; set; }
        public virtual string SetupFutureUsage { get; set; }
        public virtual string StatementDescriptorSuffixKana { get; set; }
        public virtual string StatementDescriptorSuffixKanji { get; set; }
    }

    public partial class SessionPaymentMethodOptionsCardInstallments
        : StripeEntity<SessionPaymentMethodOptionsCardInstallments>
    {
        public virtual bool Enabled { get; set; }
    }

    public partial class SessionPaymentMethodOptionsCardInstallmentsOptions
        : INestedOptions
    {
        public virtual bool? Enabled { get; set; }
    }

    public partial class SessionPaymentMethodOptionsCardOptions
        : INestedOptions
    {
        public virtual SessionPaymentMethodOptionsCardInstallmentsOptions Installments { get; set; }
        public virtual string RequestThreeDSecure { get; set; }
        public virtual string SetupFutureUsage { get; set; }
        public virtual string StatementDescriptorSuffixKana { get; set; }
        public virtual string StatementDescriptorSuffixKanji { get; set; }
    }

    public partial class SessionPaymentMethodOptionsCashapp
        : StripeEntity<SessionPaymentMethodOptionsCashapp>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsCashappOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsCustomerBalance
        : StripeEntity<SessionPaymentMethodOptionsCustomerBalance>
    {
        public virtual SessionPaymentMethodOptionsCustomerBalanceBankTransfer BankTransfer { get; set; }
        public virtual string FundingType { get; set; }
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsCustomerBalanceBankTransfer
        : StripeEntity<SessionPaymentMethodOptionsCustomerBalanceBankTransfer>
    {
        public SessionPaymentMethodOptionsCustomerBalanceBankTransfer()
        {
            RequestedAddressTypes = new List<string>{};
        }

        public virtual SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer EuBankTransfer { get; set; }
        public virtual List<string> RequestedAddressTypes { get; set; }
        public virtual string Type { get; set; }
    }

    public partial class SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer
        : StripeEntity<SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer>
    {
        public virtual string Country { get; set; }
    }

    public partial class SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransferOptions
        : INestedOptions
    {
        public virtual string Country { get; set; }
    }

    public partial class SessionPaymentMethodOptionsCustomerBalanceBankTransferOptions
        : INestedOptions
    {
        public SessionPaymentMethodOptionsCustomerBalanceBankTransferOptions()
        {
            RequestedAddressTypes = new List<string>{};
        }

        public virtual SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransferOptions EuBankTransfer { get; set; }
        public virtual List<string> RequestedAddressTypes { get; set; }
        public virtual string Type { get; set; }
    }

    public partial class SessionPaymentMethodOptionsCustomerBalanceOptions
        : INestedOptions
    {
        public virtual SessionPaymentMethodOptionsCustomerBalanceBankTransferOptions BankTransfer { get; set; }
        public virtual string FundingType { get; set; }
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsEps
        : StripeEntity<SessionPaymentMethodOptionsEps>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsEpsOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsFpx
        : StripeEntity<SessionPaymentMethodOptionsFpx>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsFpxOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsGiropay
        : StripeEntity<SessionPaymentMethodOptionsGiropay>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsGiropayOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsGrabpay
        : StripeEntity<SessionPaymentMethodOptionsGrabpay>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsGrabpayOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsIdeal
        : StripeEntity<SessionPaymentMethodOptionsIdeal>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsIdealOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsKlarna
        : StripeEntity<SessionPaymentMethodOptionsKlarna>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsKlarnaOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsKonbini
        : StripeEntity<SessionPaymentMethodOptionsKonbini>
    {
        public virtual long? ExpiresAfterDays { get; set; }
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsKonbiniOptions
        : INestedOptions
    {
        public virtual long? ExpiresAfterDays { get; set; }
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsLink
        : StripeEntity<SessionPaymentMethodOptionsLink>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsLinkOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsMobilepay
        : StripeEntity<SessionPaymentMethodOptionsMobilepay>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsMobilepayOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsMultibanco
        : StripeEntity<SessionPaymentMethodOptionsMultibanco>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsMultibancoOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsOptions
        : INestedOptions
    {
        public virtual SessionPaymentMethodOptionsAcssDebitOptions AcssDebit { get; set; }
        public virtual SessionPaymentMethodOptionsAffirmOptions Affirm { get; set; }
        public virtual SessionPaymentMethodOptionsAfterpayClearpayOptions AfterpayClearpay { get; set; }
        public virtual SessionPaymentMethodOptionsAlipayOptions Alipay { get; set; }
        public virtual SessionPaymentMethodOptionsAmazonPayOptions AmazonPay { get; set; }
        public virtual SessionPaymentMethodOptionsAuBecsDebitOptions AuBecsDebit { get; set; }
        public virtual SessionPaymentMethodOptionsBacsDebitOptions BacsDebit { get; set; }
        public virtual SessionPaymentMethodOptionsBancontactOptions Bancontact { get; set; }
        public virtual SessionPaymentMethodOptionsBoletoOptions Boleto { get; set; }
        public virtual SessionPaymentMethodOptionsCardOptions Card { get; set; }
        public virtual SessionPaymentMethodOptionsCashappOptions Cashapp { get; set; }
        public virtual SessionPaymentMethodOptionsCustomerBalanceOptions CustomerBalance { get; set; }
        public virtual SessionPaymentMethodOptionsEpsOptions Eps { get; set; }
        public virtual SessionPaymentMethodOptionsFpxOptions Fpx { get; set; }
        public virtual SessionPaymentMethodOptionsGiropayOptions Giropay { get; set; }
        public virtual SessionPaymentMethodOptionsGrabpayOptions Grabpay { get; set; }
        public virtual SessionPaymentMethodOptionsIdealOptions Ideal { get; set; }
        public virtual SessionPaymentMethodOptionsKlarnaOptions Klarna { get; set; }
        public virtual SessionPaymentMethodOptionsKonbiniOptions Konbini { get; set; }
        public virtual SessionPaymentMethodOptionsLinkOptions Link { get; set; }
        public virtual SessionPaymentMethodOptionsMobilepayOptions Mobilepay { get; set; }
        public virtual SessionPaymentMethodOptionsMultibancoOptions Multibanco { get; set; }
        public virtual SessionPaymentMethodOptionsOxxoOptions Oxxo { get; set; }
        public virtual SessionPaymentMethodOptionsP24Options P24 { get; set; }
        public virtual SessionPaymentMethodOptionsPaynowOptions Paynow { get; set; }
        public virtual SessionPaymentMethodOptionsPaypalOptions Paypal { get; set; }
        public virtual SessionPaymentMethodOptionsPixOptions Pix { get; set; }
        public virtual SessionPaymentMethodOptionsRevolutPayOptions RevolutPay { get; set; }
        public virtual SessionPaymentMethodOptionsSepaDebitOptions SepaDebit { get; set; }
        public virtual SessionPaymentMethodOptionsSofortOptions Sofort { get; set; }
        public virtual SessionPaymentMethodOptionsSwishOptions Swish { get; set; }
        public virtual SessionPaymentMethodOptionsUsBankAccountOptions UsBankAccount { get; set; }
        public virtual SessionPaymentMethodOptionsWechatPayOptions WechatPay { get; set; }
    }

    public partial class SessionPaymentMethodOptionsOxxo
        : StripeEntity<SessionPaymentMethodOptionsOxxo>
    {
        public virtual long ExpiresAfterDays { get; set; }
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsOxxoOptions
        : INestedOptions
    {
        public virtual long? ExpiresAfterDays { get; set; }
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsP24
        : StripeEntity<SessionPaymentMethodOptionsP24>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsP24Options
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
        public virtual bool? TosShownAndAccepted { get; set; }
    }

    public partial class SessionPaymentMethodOptionsPaynow
        : StripeEntity<SessionPaymentMethodOptionsPaynow>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsPaynowOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsPaypal
        : StripeEntity<SessionPaymentMethodOptionsPaypal>
    {
        public virtual string CaptureMethod { get; set; }
        public virtual string PreferredLocale { get; set; }
        public virtual string Reference { get; set; }
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsPaypalOptions
        : INestedOptions
    {
        public virtual string CaptureMethod { get; set; }
        public virtual string PreferredLocale { get; set; }
        public virtual string Reference { get; set; }
        public virtual string RiskCorrelationId { get; set; }
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsPix
        : StripeEntity<SessionPaymentMethodOptionsPix>
    {
        public virtual long? ExpiresAfterSeconds { get; set; }
    }

    public partial class SessionPaymentMethodOptionsPixOptions
        : INestedOptions
    {
        public virtual long? ExpiresAfterSeconds { get; set; }
    }

    public partial class SessionPaymentMethodOptionsRevolutPay
        : StripeEntity<SessionPaymentMethodOptionsRevolutPay>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsRevolutPayOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsSepaDebit
        : StripeEntity<SessionPaymentMethodOptionsSepaDebit>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsSepaDebitOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsSofort
        : StripeEntity<SessionPaymentMethodOptionsSofort>
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsSofortOptions
        : INestedOptions
    {
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPaymentMethodOptionsSwish
        : StripeEntity<SessionPaymentMethodOptionsSwish>
    {
        public virtual string Reference { get; set; }
    }

    public partial class SessionPaymentMethodOptionsSwishOptions
        : INestedOptions
    {
        public virtual string Reference { get; set; }
    }

    public partial class SessionPaymentMethodOptionsUsBankAccount
        : StripeEntity<SessionPaymentMethodOptionsUsBankAccount>
    {
        public virtual SessionPaymentMethodOptionsUsBankAccountFinancialConnections FinancialConnections { get; set; }
        public virtual string SetupFutureUsage { get; set; }
        public virtual string VerificationMethod { get; set; }
    }

    public partial class SessionPaymentMethodOptionsUsBankAccountFinancialConnections
        : StripeEntity<SessionPaymentMethodOptionsUsBankAccountFinancialConnections>
    {
        public SessionPaymentMethodOptionsUsBankAccountFinancialConnections()
        {
            Permissions = new List<string>{};
            Prefetch = new List<string>{};
        }

        public virtual SessionPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters Filters { get; set; }
        public virtual List<string> Permissions { get; set; }
        public virtual List<string> Prefetch { get; set; }
        public virtual string ReturnUrl { get; set; }
    }

    public partial class SessionPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters
        : StripeEntity<SessionPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters>
    {
        public SessionPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters()
        {
            AccountSubcategories = new List<string>{};
        }

        public virtual List<string> AccountSubcategories { get; set; }
    }

    public partial class SessionPaymentMethodOptionsUsBankAccountFinancialConnectionsOptions
        : INestedOptions
    {
        public SessionPaymentMethodOptionsUsBankAccountFinancialConnectionsOptions()
        {
            Permissions = new List<string>{};
            Prefetch = new List<string>{};
        }

        public virtual List<string> Permissions { get; set; }
        public virtual List<string> Prefetch { get; set; }
    }

    public partial class SessionPaymentMethodOptionsUsBankAccountOptions
        : INestedOptions
    {
        public virtual SessionPaymentMethodOptionsUsBankAccountFinancialConnectionsOptions FinancialConnections { get; set; }
        public virtual string SetupFutureUsage { get; set; }
        public virtual string VerificationMethod { get; set; }
    }

    public partial class SessionPaymentMethodOptionsWechatPayOptions
        : INestedOptions
    {
        public virtual string AppId { get; set; }
        public virtual string Client { get; set; }
        public virtual string SetupFutureUsage { get; set; }
    }

    public partial class SessionPhoneNumberCollection
        : StripeEntity<SessionPhoneNumberCollection>
    {
        public virtual bool Enabled { get; set; }
    }

    public partial class SessionPhoneNumberCollectionOptions
        : INestedOptions
    {
        public virtual bool? Enabled { get; set; }
    }

    public partial class SessionSavedPaymentMethodOptions
        : StripeEntity<SessionSavedPaymentMethodOptions>
    {
        public SessionSavedPaymentMethodOptions()
        {
            AllowRedisplayFilters = new List<string>{};
        }

        public virtual List<string> AllowRedisplayFilters { get; set; }
        public virtual string PaymentMethodRemove { get; set; }
        public virtual string PaymentMethodSave { get; set; }
    }

    public partial class SessionSavedPaymentMethodOptionsOptions
        : INestedOptions
    {
        public SessionSavedPaymentMethodOptionsOptions()
        {
            AllowRedisplayFilters = new List<string>{};
        }

        public virtual List<string> AllowRedisplayFilters { get; set; }
        public virtual string PaymentMethodSave { get; set; }
    }

    public partial class SessionSetupIntentDataOptions
        : INestedOptions, IHasMetadata
    {
        public SessionSetupIntentDataOptions()
        {
            Metadata = new Dictionary<string, string>{};
        }

        public virtual string Description { get; set; }
        public virtual Dictionary<string, string> Metadata { get; set; }
        public virtual string OnBehalfOf { get; set; }
    }

    public partial class SessionShippingAddressCollection
        : StripeEntity<SessionShippingAddressCollection>
    {
        public SessionShippingAddressCollection()
        {
            AllowedCountries = new List<string>{};
        }

        public virtual List<string> AllowedCountries { get; set; }
    }

    public partial class SessionShippingAddressCollectionOptions
        : INestedOptions
    {
        public SessionShippingAddressCollectionOptions()
        {
            AllowedCountries = new List<string>{};
        }

        public virtual List<string> AllowedCountries { get; set; }
    }

    public partial class SessionShippingCost
        : StripeEntity<SessionShippingCost>
    {
        public SessionShippingCost()
        {
            Taxes = new List<SessionShippingCostTax>{};
        }

        public virtual long AmountSubtotal { get; set; }
        public virtual long AmountTax { get; set; }
        public virtual long AmountTotal { get; set; }
        public virtual List<SessionShippingCostTax> Taxes { get; set; }
    }

    public partial class SessionShippingCostTax
        : StripeEntity<SessionShippingCostTax>
    {
        public virtual long Amount { get; set; }
        public virtual TaxRate Rate { get; set; }
        public virtual string TaxabilityReason { get; set; }
        public virtual long? TaxableAmount { get; set; }
    }

    public partial class SessionShippingDetails
        : StripeEntity<SessionShippingDetails>
    {
        public virtual Address Address { get; set; }
        public virtual string Carrier { get; set; }
        public virtual string Name { get; set; }
        public virtual string Phone { get; set; }
        public virtual string TrackingNumber { get; set; }
    }

    public partial class SessionShippingOption
        : StripeEntity<SessionShippingOption>
    {
        public virtual long ShippingAmount { get; set; }
    }

    public partial class SessionShippingOptionOptions
        : INestedOptions
    {
        public virtual string ShippingRate { get; set; }
        public virtual SessionShippingOptionShippingRateDataOptions ShippingRateData { get; set; }
    }

    public partial class SessionShippingOptionShippingRateDataDeliveryEstimateMaximumOptions
        : INestedOptions
    {
        public virtual string Unit { get; set; }
        public virtual long? Value { get; set; }
    }

    public partial class SessionShippingOptionShippingRateDataDeliveryEstimateMinimumOptions
        : INestedOptions
    {
        public virtual string Unit { get; set; }
        public virtual long? Value { get; set; }
    }

    public partial class SessionShippingOptionShippingRateDataDeliveryEstimateOptions
        : INestedOptions
    {
        public virtual SessionShippingOptionShippingRateDataDeliveryEstimateMaximumOptions Maximum { get; set; }
        public virtual SessionShippingOptionShippingRateDataDeliveryEstimateMinimumOptions Minimum { get; set; }
    }

    public partial class SessionShippingOptionShippingRateDataFixedAmountCurrencyOptionsOptions
        : INestedOptions
    {
        public virtual long? Amount { get; set; }
        public virtual string TaxBehavior { get; set; }
    }

    public partial class SessionShippingOptionShippingRateDataFixedAmountOptions
        : INestedOptions
    {
        public SessionShippingOptionShippingRateDataFixedAmountOptions()
        {
            CurrencyOptions = new Dictionary<string, SessionShippingOptionShippingRateDataFixedAmountCurrencyOptionsOptions>{};
        }

        public virtual long? Amount { get; set; }
        public virtual string Currency { get; set; }
        public virtual Dictionary<string, SessionShippingOptionShippingRateDataFixedAmountCurrencyOptionsOptions> CurrencyOptions { get; set; }
    }

    public partial class SessionShippingOptionShippingRateDataOptions
        : INestedOptions, IHasMetadata
    {
        public SessionShippingOptionShippingRateDataOptions()
        {
            Metadata = new Dictionary<string, string>{};
        }

        public virtual SessionShippingOptionShippingRateDataDeliveryEstimateOptions DeliveryEstimate { get; set; }
        public virtual string DisplayName { get; set; }
        public virtual SessionShippingOptionShippingRateDataFixedAmountOptions FixedAmount { get; set; }
        public virtual Dictionary<string, string> Metadata { get; set; }
        public virtual string TaxBehavior { get; set; }
        public virtual string TaxCode { get; set; }
        public virtual string Type { get; set; }
    }

    public partial class SessionSubscriptionDataInvoiceSettingsIssuerOptions
        : INestedOptions
    {
        public virtual string Account { get; set; }
        public virtual string Type { get; set; }
    }

    public partial class SessionSubscriptionDataInvoiceSettingsOptions
        : INestedOptions
    {
        public virtual SessionSubscriptionDataInvoiceSettingsIssuerOptions Issuer { get; set; }
    }

    public partial class SessionSubscriptionDataOptions
        : INestedOptions, IHasMetadata
    {
        public SessionSubscriptionDataOptions()
        {
            DefaultTaxRates = new List<string>{};
            Metadata = new Dictionary<string, string>{};
        }

        public virtual decimal? ApplicationFeePercent { get; set; }
        public virtual DateTime? BillingCycleAnchor { get; set; }
        public virtual List<string> DefaultTaxRates { get; set; }
        public virtual string Description { get; set; }
        public virtual SessionSubscriptionDataInvoiceSettingsOptions InvoiceSettings { get; set; }
        public virtual Dictionary<string, string> Metadata { get; set; }
        public virtual string OnBehalfOf { get; set; }
        public virtual string ProrationBehavior { get; set; }
        public virtual SessionSubscriptionDataTransferDataOptions TransferData { get; set; }
        public virtual DateTime? TrialEnd { get; set; }
        public virtual long? TrialPeriodDays { get; set; }
        public virtual SessionSubscriptionDataTrialSettingsOptions TrialSettings { get; set; }
    }

    public partial class SessionSubscriptionDataTransferDataOptions
        : INestedOptions
    {
        public virtual decimal? AmountPercent { get; set; }
        public virtual string Destination { get; set; }
    }

    public partial class SessionSubscriptionDataTrialSettingsEndBehaviorOptions
        : INestedOptions
    {
        public virtual string MissingPaymentMethod { get; set; }
    }

    public partial class SessionSubscriptionDataTrialSettingsOptions
        : INestedOptions
    {
        public virtual SessionSubscriptionDataTrialSettingsEndBehaviorOptions EndBehavior { get; set; }
    }

    public partial class SessionTaxIdCollection
        : StripeEntity<SessionTaxIdCollection>
    {
        public virtual bool Enabled { get; set; }
        public virtual string Required { get; set; }
    }

    public partial class SessionTaxIdCollectionOptions
        : INestedOptions
    {
        public virtual bool? Enabled { get; set; }
        public virtual string Required { get; set; }
    }

    public partial class SessionTotalDetails
        : StripeEntity<SessionTotalDetails>
    {
        public virtual long AmountDiscount { get; set; }
        public virtual long? AmountShipping { get; set; }
        public virtual long AmountTax { get; set; }
        public virtual SessionTotalDetailsBreakdown Breakdown { get; set; }
    }

    public partial class SessionTotalDetailsBreakdown
        : StripeEntity<SessionTotalDetailsBreakdown>
    {
        public SessionTotalDetailsBreakdown()
        {
            Discounts = new List<SessionTotalDetailsBreakdownDiscount>{};
            Taxes = new List<SessionTotalDetailsBreakdownTax>{};
        }

        public virtual List<SessionTotalDetailsBreakdownDiscount> Discounts { get; set; }
        public virtual List<SessionTotalDetailsBreakdownTax> Taxes { get; set; }
    }

    public partial class SessionTotalDetailsBreakdownDiscount
        : StripeEntity<SessionTotalDetailsBreakdownDiscount>
    {
        public virtual long Amount { get; set; }
        public virtual Discount Discount { get; set; }
    }

    public partial class SessionTotalDetailsBreakdownTax
        : StripeEntity<SessionTotalDetailsBreakdownTax>
    {
        public virtual long Amount { get; set; }
        public virtual TaxRate Rate { get; set; }
        public virtual string TaxabilityReason { get; set; }
        public virtual long? TaxableAmount { get; set; }
    }

}

C# CompanyQuery DTOs

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

HTTP + CSV

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

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

{"Offset":0,"Total":0,"Results":[{"Name":"String","OrganisationNumber":"String","TypeId":0,"Details":"String","CategoryId":0,"Category":"String","Street1":"String","Street2":"String","ZipCode":"String","City":"String","CountryId":"String","Longitude":"String","Latitude":"String","Distance":0,"Phone":"String","Email":"String","Homepage":"String","SitePath":"String","Active":false,"CodeLockSystem":"Sample","IsFreeAccount":false,"Updated":"0001-01-01T00:00:00","Created":"0001-01-01T00:00:00","StatusId":0,"IsFavorite":false,"BookingAgreements":"String","BookingSettings":{"EnableMobileApp":false,"BookingReceiptMessage":"String","ShowFreeTimesLeft":false,"EnableShowBookedTimes":false,"BookingAgreement":"String","WeekNumberSetting":0,"ShowBookedTimes":false,"PaymentProviderId":0,"BookOnlyOnExistingCustomers":false,"PaymentEnabled":false},"SystemSettings":{"Active":false,"InactiveMessage":"String","Searchable":false,"GATrackingId":"String","GoogleAdsConversionId":"String","LinkedinTagId":"String","GoogleAdsConversionLabel":"String","GTMTrackingId":"String","FacebookPixelId":"String","MultiLanguage":false,"ShowOnMarketplace":false,"EnableAPITranslation":false,"DefaultLanguage":"String"},"WidgetSettings":{"ServiceLayoutId":0,"TimeLayoutId":0,"BookingLayoutId":0,"PrimaryColor":"String","ShowServiceImage":false,"ShowRebateCodeField":false,"ShowNextAvailableTime":false,"ShowEndTime":false,"BookedTimeSlotText":"String","DarkTheme":false},"HomepageSettings":{"HomepageHeading":"String","WelcomePageHeading":"String","WelcomePageBody":"String","AboutUsPageHeading":"String","AboutUsPageBody":"String","ShowRating":false,"HomePageTemplateId":0,"HeroSectionStyleId":0,"EnableHomepage":false},"RatingSummary":{"AverageScore":0,"RatingScore1Count":0,"RatingScore2Count":0,"RatingScore3Count":0,"RaingScore4Count":0,"RatingScore5Count":0,"Count":0},"Reviews":[{"Title":"String","Description":"String","RatingScore":0,"Author":"String","ReviewAnswer":"String"}],"CustomerCustomFields":[{"Id":0,"Name":"String","Description":"String","Width":0,"DataType":"String","DefaultValue":"String","IsMandatory":false,"MandatoryErrorMessage":"String","MaxLength":0,"MultipleLineText":false,"RegEx":"String","RegExErrorMessage":"String","Values":[{"Value":"String"}]}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}],"Meta":{"String":"String"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}