BokaMera.API.Host

<back to all web services

GroupedServiceQuery

The following routes are available for this service:
GET/services/grouped
namespace BokaMera.API.ServiceModel.Db

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    type ScheduleType =
        | NotDefined = 0
        | RecurringSchedule = 1
        | DateSchedule = 2

    [<AllowNullLiteral>]
    type GroupBookingSettings() = 
        member val Active:Boolean = new Boolean() with get,set
        member val Min:Int32 = new Int32() with get,set
        member val Max:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type MultipleResourceSettings() = 
        member val Active:Boolean = new Boolean() with get,set
        member val Min:Int32 = new Int32() with get,set
        member val Max:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type CustomFieldValueResponse() = 
        member val Value:String = null with get,set

    [<AllowNullLiteral>]
    type CustomFieldConfigData() = 
        ///<summary>
        ///Custom field id
        ///</summary>
        [<ApiMember(Description="Custom field id")>]
        member val Id:Int32 = new Int32() with get,set

        ///<summary>
        ///Configuration name. Example: 'Number of persons'.
        ///</summary>
        [<ApiMember(Description="Configuration name. Example: 'Number of persons'.")>]
        member val Name:String = null with 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?'")>]
        member val Description:String = null with get,set

        ///<summary>
        ///Field width. Example: 20 for 20px
        ///</summary>
        [<ApiMember(Description="Field width. Example: 20 for 20px")>]
        member val Width:Nullable<Int32> = new Nullable<Int32>() with 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'")>]
        member val DataType:String = null with get,set

        ///<summary>
        ///Default value of the field. Example: '3'
        ///</summary>
        [<ApiMember(Description="Default value of the field. Example: '3'")>]
        member val DefaultValue:String = null with 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")>]
        member val IsMandatory:Boolean = new Boolean() with 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")>]
        member val MandatoryErrorMessage:String = null with get,set

        ///<summary>
        ///Max lenght of the field
        ///</summary>
        [<ApiMember(Description="Max lenght of the field")>]
        member val MaxLength:Int32 = new Int32() with get,set

        ///<summary>
        ///If the field should have multiple lines
        ///</summary>
        [<ApiMember(Description="If the field should have multiple lines")>]
        member val MultipleLineText:Boolean = new Boolean() with get,set

        ///<summary>
        ///Regular expression used for validation of the field
        ///</summary>
        [<ApiMember(Description="Regular expression used for validation of the field")>]
        member val RegEx:String = null with get,set

        ///<summary>
        ///Error message shown if the regular expression validation failed
        ///</summary>
        [<ApiMember(Description="Error message shown if the regular expression validation failed")>]
        member val RegExErrorMessage:String = null with 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")>]
        member val Values:ResizeArray<CustomFieldValueResponse> = new ResizeArray<CustomFieldValueResponse>() with get,set

    [<AllowNullLiteral>]
    type CustomFieldDataResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val Column:String = null with get,set
        member val Name:String = null with get,set
        member val Description:String = null with get,set
        member val Value:String = null with 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'")>]
        member val DataType:String = null with get,set

    [<AllowNullLiteral>]
    type BookingStatusOptionsResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val Description:String = null with get,set

    [<AllowNullLiteral>]
    type DayOfWeekDto() = 
        member val DayOfWeekId:Int32 = new Int32() with get,set
        member val DotNetDayOfWeekId:Int32 = new Int32() with get,set
        member val DayOfWeek:String = null with get,set

    [<AllowNullLiteral>]
    type ServiceInfoResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val Description:String = null with get,set
        member val ImageUrl:Uri = null with get,set
        member val LengthInMinutes:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val MaxNumberOfSpotsPerBooking:Int32 = new Int32() with get,set
        member val GroupBooking:GroupBookingSettings = null with get,set
        member val MultipleResource:MultipleResourceSettings = null with get,set
        member val IsGroupBooking:Boolean = new Boolean() with get,set
        member val IsPaymentEnabled:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type ServicePriceResponse() = 
        ///<summary>
        ///The company id
        ///</summary>
        [<ApiMember(Description="The company id")>]
        member val CompanyId:Guid = new Guid() with get,set

        ///<summary>
        ///The price id
        ///</summary>
        [<ApiMember(Description="The price id")>]
        member val Id:Int32 = new Int32() with get,set

        ///<summary>
        ///The service id
        ///</summary>
        [<ApiMember(Description="The service id")>]
        member val ServiceId:Int32 = new Int32() with get,set

        ///<summary>
        ///The price
        ///</summary>
        [<ApiMember(Description="The price")>]
        member val Price:Double = new Double() with get,set

        ///<summary>
        ///The price calculation type id, 1 = Normal, price is for the service total duration, 2 = Price is per minute, 3 = Price is per hour, 4= Price is per day
        ///</summary>
        [<ApiMember(Description="The price calculation type id, 1 = Normal, price is for the service total duration, 2 = Price is per minute, 3 = Price is per hour, 4= Price is per day")>]
        member val CalculationTypeId:Int32 = new Int32() with get,set

        ///<summary>
        ///The price currency
        ///</summary>
        [<ApiMember(Description="The price currency")>]
        member val CurrencyId:String = null with get,set

        ///<summary>
        ///The price sign
        ///</summary>
        [<ApiMember(Description="The price sign")>]
        member val PriceSign:String = null with get,set

        ///<summary>
        ///The price VAT in percent
        ///</summary>
        [<ApiMember(Description="The price VAT in percent")>]
        member val VAT:Decimal = new Decimal() with get,set

        ///<summary>
        ///The price category if price has a category
        ///</summary>
        [<ApiMember(Description="The price category if price has a category")>]
        member val Category:String = null with get,set

        ///<summary>
        ///The price text to display
        ///</summary>
        [<ApiMember(Description="The price text to display")>]
        member val PriceText:String = null with get,set

        ///<summary>
        ///The valid from date for the price.
        ///</summary>
        [<ApiMember(Description="The valid from date for the price.")>]
        member val From:DateTime = new DateTime() with get,set

        ///<summary>
        ///The valid to date for the price.
        ///</summary>
        [<ApiMember(Description="The valid to date for the price.")>]
        member val To:DateTime = new DateTime() with get,set

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

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

        ///<summary>
        ///If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.
        ///</summary>
        [<ApiMember(Description="If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.")>]
        member val ToTime:Nullable<TimeSpan> = new Nullable<TimeSpan>() with get,set

        member val Service:ServiceInfoResponse = null with get,set
        ///<summary>
        ///If the price is only valid for a specific time span
        ///</summary>
        [<ApiMember(Description="If the price is only valid for a specific time span")>]
        member val IsTimeSpecific:Boolean = new Boolean() with get,set

        ///<summary>
        ///If the price is only valid for specific days of week
        ///</summary>
        [<ApiMember(Description="If the price is only valid for specific days of week")>]
        member val IsDaysOfWeekSpecific:Boolean = new Boolean() with get,set

        ///<summary>
        ///If the price is Weighted
        ///</summary>
        [<ApiMember(Description="If the price is Weighted")>]
        member val IsWeighted:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type BaseModel() = 
        class end

    [<AllowNullLiteral>]
    type ITimeException = 
        abstract Id:Int32 with get,set
        abstract ReasonText:String with get,set
        abstract IsBlock:Boolean with get,set
        abstract ReasonTextPublic:String with get,set
        abstract IsRecurring:Boolean with get,set
        abstract ResourceIds:Int32[] with get,set

    type BookingStatusEnum =
        | Booked = 1
        | Unbooked = 2
        | Reserved = 3
        | Canceled = 4
        | AwaitingPayment = 5
        | AwaitingPaymentNoTimeLimit = 6
        | Payed = 7
        | AwaitingPaymentRequestFromAdmin = 8
        | AwaitingPaymentFromProvider = 9
        | Invoiced = 10

    [<AllowNullLiteral>]
    type BookedCustomer() = 
        member val Id:Guid = new Guid() with get,set
        member val Firstname:String = null with get,set
        member val Lastname:String = null with get,set
        member val Email:String = null with get,set
        member val Phone:String = null with get,set
        member val FacebookUserName:String = null with get,set
        member val ImageUrl:String = null with get,set
        member val CorporateIdentityNumber:String = null with get,set
        member val InvoiceAddress1:String = null with get,set
        member val InvoiceAddress2:String = null with get,set
        member val InvoiceCity:String = null with get,set
        member val InvoicePostalCode:String = null with get,set
        member val InvoiceCountryCode:String = null with get,set

    [<AllowNullLiteral>]
    type IBookedTime = 
        abstract Id:Int32 with get,set
        abstract ServiceId:Int32 with get,set
        abstract BookedSpots:Int32 with get,set
        abstract TotalSpots:Int32 with get,set
        abstract PauseAfterInMinutes:Int32 with get,set
        abstract Status:BookingStatusEnum with get,set
        abstract StatusId:Int32 with get,set
        abstract Customer:BookedCustomer with get,set

    [<AllowNullLiteral>]
    type CustomFieldValue() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val Value:String = null with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val SortOrder:Nullable<Int16> = new Nullable<Int16>() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type CustomField() = 
        inherit BaseModel()
        [<Required>]
        member val Table:String = null with get,set

        [<Required>]
        member val Column:String = null with get,set

        [<Required>]
        member val DataType:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type RegEx() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val RegExCode:String = null with get,set

        member val ErrorMessage:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type ResourceType() = 
        inherit BaseModel()
        [<Ignore>]
        member val SelectableByUser:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val Resources:ResizeArray<Resource> = new ResizeArray<Resource>() with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val Name:String = null with get,set

        member val Description:String = null with get,set
        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type RebateCodeType() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        member val Description:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type AppliedRebateCodes() = 
        member val RebateCodeId:Int32 = new Int32() with get,set
        member val RebateCodeSign:String = null with get,set
        member val RebateCodeValue:Int32 = new Int32() with get,set
        member val RebateAmount:Double = new Double() with get,set
        member val RebateCodeType:RebateCodeType = null with get,set

    [<AllowNullLiteral>]
    type TotalPriceInformation() = 
        member val TotalPrice:Double = new Double() with get,set
        member val TotalVATAmount:Double = new Double() with get,set
        member val TotalRebate:Double = new Double() with get,set
        member val TotalPriceBeforeRebate:Double = new Double() with get,set
        member val AppliedCodes:ResizeArray<AppliedRebateCodes> = new ResizeArray<AppliedRebateCodes>() with get,set
        member val PriceSign:String = null with get,set
        member val CurrencyId:String = null with get,set
        member val VAT:Decimal = new Decimal() with get,set

    type Currency =
        | SEK = 1
        | EUR = 2

    [<AllowNullLiteral>]
    type PriceMapping() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val Id:Guid = new Guid() with get,set

        [<Required>]
        member val PriceId:Int32 = new Int32() with get,set

        member val ReferenceType:String = null with get,set
        member val ExternalReference:String = null with get,set
        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    type BokaMeraDayOfWeek =
        | Monday = 1
        | Tuesday = 2
        | Wednesday = 3
        | Thursday = 4
        | Friday = 5
        | Saturday = 6
        | Sunday = 7

    [<AllowNullLiteral>]
    type ServicePriceDayOfWeekRelation() = 
        inherit BaseModel()
        [<Ignore>]
        member val DayOfWeek:BokaMeraDayOfWeek = new BokaMeraDayOfWeek() with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val ServicePriceId:Int32 = new Int32() with get,set

        [<Required>]
        member val DayOfWeekId:Int32 = new Int32() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type RebateCodeDayOfWeekRelation() = 
        inherit BaseModel()
        [<Ignore>]
        member val DayOfWeek:BokaMeraDayOfWeek = new BokaMeraDayOfWeek() with get,set

        [<Required>]
        member val DayOfWeekId:Int32 = new Int32() with get,set

        [<Required>]
        member val RebateCodeId:Int32 = new Int32() with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type RebateCodeServiceRelation() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val ServiceId:Int32 = new Int32() with get,set

        [<Required>]
        member val RebateCodeId:Int32 = new Int32() with get,set

        member val Id:Int32 = new Int32() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type RebateCodeBookingPriceRelation() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val PriceId:Int32 = new Int32() with get,set

        [<Required>]
        member val RebateCodeId:Int32 = new Int32() with get,set

        member val Id:Int32 = new Int32() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type RebateCodeCustomerRelation() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val CustomerId:Guid = new Guid() with get,set

        [<Required>]
        member val RebateCodeId:Int32 = new Int32() with get,set

        member val Id:Int32 = new Int32() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type DaysOfWeek() = 
        inherit BaseModel()
        [<Required>]
        member val DayOfWeek:String = null with get,set

        [<Required>]
        member val DayOfWeekTranslation:String = null with get,set

        member val DayOfWeekActive:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val DayOfWeekSortOrder:Nullable<Int16> = new Nullable<Int16>() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type UserAccessKeys() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val AccessKeyTypeId:Int32 = new Int32() with get,set

        [<Required>]
        member val Value:String = null with get,set

        [<Required>]
        member val CustomerId:Guid = new Guid() with get,set

        member val Description:String = null with get,set
        [<Required>]
        member val Id:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type ExternalReference() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val Id:Guid = new Guid() with get,set

        [<Required>]
        member val OwnerId:Guid = new Guid() with get,set

        [<Required>]
        member val ReferenceType:String = null with get,set

        member val ExternalData:String = null with get,set
        member val CreatedBy:String = null with get,set
        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type CustomerComment() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val CustomerId:Guid = new Guid() with get,set

        [<Required>]
        member val Comments:String = null with get,set

        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        member val ImageUrl:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    type CustomerType =
        | Person = 0
        | Business = 1

    [<AllowNullLiteral>]
    type Customer() = 
        member val City:String = null with get,set
        member val CountryCode:String = null with get,set
        member val IdentityNumber:String = null with get,set
        member val Email:String = null with get,set
        member val FirstName:String = null with get,set
        member val LastName:String = null with get,set
        member val Phone:String = null with get,set
        member val PostalCode:String = null with get,set
        member val Street:String = null with get,set
        member val Reference:String = null with get,set
        member val Type:CustomerType = new CustomerType() with get,set

    [<AllowNullLiteral>]
    type RebateCodeStatus() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        member val Description:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type RebateCode() = 
        inherit BaseModel()
        [<References(typeof<RebateCodeType>)>]
        member val RebateCodeTypeId:Int32 = new Int32() with get,set

        member val RebateCodeTypeInfo:RebateCodeType = null with get,set
        [<References(typeof<RebateCodeStatus>)>]
        member val RebateCodeStatusId:Int32 = new Int32() with get,set

        member val RebateCodeStatusInfo:RebateCodeType = null with get,set
        [<Ignore>]
        member val Services:ResizeArray<Service> = new ResizeArray<Service>() with get,set

        member val RebateCodeDayOfWeekRelation:ResizeArray<RebateCodeDayOfWeekRelation> = new ResizeArray<RebateCodeDayOfWeekRelation>() with get,set
        member val RebateCodeServiceRelation:ResizeArray<RebateCodeServiceRelation> = new ResizeArray<RebateCodeServiceRelation>() with get,set
        member val RebateCodeBookingPriceRelation:ResizeArray<RebateCodeBookingPriceRelation> = new ResizeArray<RebateCodeBookingPriceRelation>() with get,set
        member val RebateCodeCustomerRelation:ResizeArray<RebateCodeCustomerRelation> = new ResizeArray<RebateCodeCustomerRelation>() with get,set
        [<Ignore>]
        member val DaysOfWeek:ResizeArray<DaysOfWeek> = new ResizeArray<DaysOfWeek>() with get,set

        [<Ignore>]
        member val Customers:ResizeArray<Customer> = new ResizeArray<Customer>() with get,set

        [<Ignore>]
        member val RebateCodeStatus:RebateCodeStatus = null with get,set

        [<Ignore>]
        member val RebateCodeType:RebateCodeType = null with get,set

        [<Ignore>]
        member val CurrentNumberOfUsesPerCustomer:Int32 = new Int32() with get,set

        [<Ignore>]
        member val IsSpecificByDayOfWeek:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val Active:Boolean = new Boolean() with get,set

        member val CompanyId:Guid = new Guid() with get,set
        [<Required>]
        member val ValidFrom:DateTime = new DateTime() with get,set

        [<Required>]
        member val ValidTo:DateTime = new DateTime() with get,set

        [<Required>]
        member val RebateCodeSign:String = null with get,set

        [<Required>]
        member val RebateCodeValue:Int32 = new Int32() with get,set

        [<Required>]
        member val MaxNumberOfUses:Int32 = new Int32() with get,set

        [<Required>]
        member val MaxNumberOfUsesPerCustomer:Int32 = new Int32() with get,set

        [<Required>]
        member val NumberOfUsesUsed:Int32 = new Int32() with get,set

        member val PersonalNote:String = null with get,set
        [<Required>]
        member val CreatedBy:String = null with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        [<Required>]
        member val UpdatedBy:String = null with get,set

        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val FromTime:TimeSpan = new TimeSpan() with get,set

        [<Required>]
        member val ToTime:TimeSpan = new TimeSpan() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type ServicePrice() = 
        inherit BaseModel()
        [<References(typeof<Currency>)>]
        member val CurrencyId:String = null with get,set

        member val CurrencyInfo:Currency = null with get,set
        [<Ignore>]
        member val Service:Service = null with get,set

        [<Ignore>]
        member val PriceMappings:ResizeArray<PriceMapping> = new ResizeArray<PriceMapping>() with get,set

        [<Ignore>]
        member val isTimeSpecific:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val isDaysOfWeekSpecific:Boolean = new Boolean() with get,set

        member val DayOfWeeks:ResizeArray<ServicePriceDayOfWeekRelation> = new ResizeArray<ServicePriceDayOfWeekRelation>() with get,set
        [<Ignore>]
        member val PriceBeforeRebate:Nullable<Double> = new Nullable<Double>() with get,set

        [<Ignore>]
        member val RebateCodesApplied:ResizeArray<RebateCode> = new ResizeArray<RebateCode>() with get,set

        [<Ignore>]
        member val PriceText:String = null with get,set

        [<Ignore>]
        member val IsWeighted:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val OverlappingPrices:ResizeArray<ServicePrice> = new ResizeArray<ServicePrice>() with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val ServiceId:Int32 = new Int32() with get,set

        member val Price:Nullable<Double> = new Nullable<Double>() with get,set
        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        [<Required>]
        member val FromTime:TimeSpan = new TimeSpan() with get,set

        [<Required>]
        member val ToTime:TimeSpan = new TimeSpan() with get,set

        [<Required>]
        member val VAT:Decimal = new Decimal() with get,set

        member val Category:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val From:DateTime = new DateTime() with get,set

        [<Required>]
        member val To:DateTime = new DateTime() with get,set

        [<Required>]
        member val CalculationTypeId:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BookingStatusOptions() = 
        member val Id:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val Description:String = null with get,set

    [<AllowNullLiteral>]
    type ScheduleView() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type WeekNumberSetting() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BookingTemplate() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val UsedByApplication:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type CalendarType() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type FreeSpotTexts() = 
        inherit BaseModel()
        [<Required>]
        member val TextSingular:String = null with get,set

        [<Required>]
        member val TextPlural:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BookingSettings() = 
        inherit BaseModel()
        [<References(typeof<FreeSpotTexts>)>]
        member val FreeSpotTextsId:Int32 = new Int32() with get,set

        [<Ignore>]
        member val SendEmailConfirmation:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val ScheduleViewOptions:ResizeArray<ScheduleView> = new ResizeArray<ScheduleView>() with get,set

        [<Ignore>]
        member val WeekNumberSettingOptions:ResizeArray<WeekNumberSetting> = new ResizeArray<WeekNumberSetting>() with get,set

        [<Ignore>]
        member val BookingTemplateOptions:ResizeArray<BookingTemplate> = new ResizeArray<BookingTemplate>() with get,set

        [<Ignore>]
        member val CalendarTypeOptions:ResizeArray<CalendarType> = new ResizeArray<CalendarType>() with get,set

        [<Ignore>]
        member val FreeSpotTextOptions:ResizeArray<FreeSpotTexts> = new ResizeArray<FreeSpotTexts>() with get,set

        [<Ignore>]
        member val BookingStatusOptions:ResizeArray<BookingStatusOptions> = new ResizeArray<BookingStatusOptions>() with get,set

        member val FreeSpotTextsInfo:FreeSpotTexts = null with get,set
        [<Ignore>]
        member val FreeSpotsTextSingular:String = null with get,set

        [<Ignore>]
        member val FreeSpotsTextPlural:String = null with get,set

        [<Required>]
        member val BookingStatusId:Int32 = new Int32() with get,set

        [<Required>]
        member val ScheduleViewId:Int32 = new Int32() with get,set

        [<Required>]
        member val BookingTemplateId:Int32 = new Int32() with get,set

        [<Required>]
        member val CalendarTypeId:Int32 = new Int32() with get,set

        [<Required>]
        member val AllowBookingOnUnbookedTimes:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendEmailReminder:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendSmsReminder:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendSmsConfirmation:Boolean = new Boolean() with get,set

        [<Required>]
        member val EmailReminderTime:Int32 = new Int32() with get,set

        [<Required>]
        member val SmsReminderTime:Int32 = new Int32() with get,set

        [<Required>]
        member val MaxActiveBookings:Int32 = new Int32() with get,set

        [<Required>]
        member val SendNotifications:Boolean = new Boolean() with get,set

        member val SendNotificationsEmail:String = null with get,set
        [<Required>]
        member val EnableMobileApp:Boolean = new Boolean() with get,set

        member val ScheduleStartTime:Nullable<TimeSpan> = new Nullable<TimeSpan>() with get,set
        member val ScheduleEndTime:Nullable<TimeSpan> = new Nullable<TimeSpan>() with get,set
        member val ReceiptTemplate:String = null with get,set
        [<Required>]
        member val ScheduleTimeSlotMinutes:Int32 = new Int32() with get,set

        [<Required>]
        member val ShowFreeTimesLeft:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableICalGroupBookings:Boolean = new Boolean() with get,set

        member val AgreementTemplate:String = null with get,set
        [<Required>]
        member val ScheduleShowTimeExeptions:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableBookingsOnSameTime:Boolean = new Boolean() with get,set

        [<Required>]
        member val ShowWeekNumberSettingId:Int32 = new Int32() with get,set

        [<Required>]
        member val EnableShowBookedTimes:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableSendFollowUpMessage:Boolean = new Boolean() with get,set

        [<Required>]
        member val FollowUpMessageTime:Int32 = new Int32() with get,set

        member val MessageText:String = null with get,set
        [<Required>]
        member val ScheduleGroupResources:Boolean = new Boolean() with get,set

        [<Required>]
        member val BookSpotUserResponseMinutes:Int32 = new Int32() with get,set

        [<Required>]
        member val IsBookSpotDirectly:Boolean = new Boolean() with get,set

        [<Required>]
        member val BookSpotDirectlyTimeLeftMinutes:Int32 = new Int32() with get,set

        [<Required>]
        member val SendEmailNotificationQueue:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendSMSNotificationQueue:Boolean = new Boolean() with get,set

        [<Required>]
        member val SchedulerDisableHorizontalScrolling:Boolean = new Boolean() with get,set

        [<Required>]
        member val BookOnlyOnExistingCustomers:Boolean = new Boolean() with get,set

        [<Required>]
        member val AutoGenerateUniquePinCode:Boolean = new Boolean() with get,set

        [<Required>]
        member val WeightedPrices:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val AutoCreateUserProfile:Boolean = new Boolean() with get,set

        member val ShowMultipleResourcesAsOne:Boolean = new Boolean() with get,set
        member val ShowMultiDayAsTime:Boolean = new Boolean() with get,set
        [<Required>]
        member val Id:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type AdminPaymentOptions() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type PaymentProviders() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Category:String = null with get,set

        member val Url:String = null with get,set
        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type PaymentSetting() = 
        inherit BaseModel()
        member val AdminPaymentOption:AdminPaymentOptions = null with get,set
        [<Ignore>]
        member val AdminPaymentOptions:ResizeArray<AdminPaymentOptions> = new ResizeArray<AdminPaymentOptions>() with get,set

        [<Ignore>]
        member val PaymentProviderOptions:ResizeArray<PaymentProviders> = new ResizeArray<PaymentProviders>() with get,set

        [<Required>]
        member val Enabled:Boolean = new Boolean() with get,set

        [<Required>]
        member val InvoiceFee:Int32 = new Int32() with get,set

        [<Required>]
        member val AllowCreditCardPayment:Boolean = new Boolean() with get,set

        [<Required>]
        member val AllowInvoicePayment:Boolean = new Boolean() with get,set

        [<Required>]
        member val AllowBankPayment:Boolean = new Boolean() with get,set

        [<Required>]
        member val GuaranteeOffered:Boolean = new Boolean() with get,set

        [<Required>]
        member val RefundOnCancelBooking:Boolean = new Boolean() with get,set

        member val DefaultPaymentOptionId:Nullable<Int32> = new Nullable<Int32>() with get,set
        [<Required>]
        member val PaymentProviderId:Int32 = new Int32() with get,set

        [<Required>]
        member val SendPaymentRequestDirectly:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type CalendarExport() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val BookingId:Int32 = new Int32() with get,set

        [<Required>]
        member val ExceptionId:Int32 = new Int32() with get,set

        member val CalendarSync:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val CalendarId:String = null with get,set
        member val IsExceptionDeleted:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BookingLogEventType() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BookingLog() = 
        inherit BaseModel()
        [<References(typeof<BookingLogEventType>)>]
        member val EventTypeId:Int32 = new Int32() with get,set

        member val EventType:BookingLogEventType = null with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val BookingId:Int32 = new Int32() with get,set

        member val Id:Int32 = new Int32() with get,set
        member val Comments:String = null with get,set
        member val UserId:String = null with get,set
        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type PaymentLog() = 
        inherit BaseModel()
        [<References(typeof<Currency>)>]
        member val CurrencyId:String = null with get,set

        member val CurrencyInfo:Currency = null with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val BookingId:Int32 = new Int32() with get,set

        member val PaymentReferenceId:String = null with get,set
        member val PaymentProviderId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val OrderItemReferenceId:String = null with get,set
        member val Amount:Nullable<Double> = new Nullable<Double>() with get,set
        member val VAT:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val AmountCredited:Nullable<Double> = new Nullable<Double>() with get,set
        member val Comments:String = null with get,set
        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type QvicklyCheckoutResponse() = 
        member val Number:Int32 = new Int32() with get,set
        member val Status:String = null with get,set
        member val OrderId:String = null with get,set
        member val Url:String = null with get,set

    type Payson2CheckoutStatus =
        | None = 0
        | Created = 1
        | FormsFilled = 2
        | ReadyToPay = 3
        | ProcessingPayment = 4
        | ReadyToShip = 5
        | Shipped = 6
        | PaidToAccount = 7
        | Canceled = 8
        | Credited = 9
        | Expired = 10
        | Denied = 11

    type ItemType =
        | Physical = 0
        | Service = 1
        | Fee = 2
        | Discount = 3

    [<AllowNullLiteral>]
    type Item() = 
        member val ItemId:Guid = new Guid() with get,set
        member val DiscountRate:Decimal = new Decimal() with get,set
        member val Ean:String = null with get,set
        member val ImageUri:Uri = null with get,set
        member val Name:String = null with get,set
        member val Quantity:Decimal = new Decimal() with get,set
        member val Reference:String = null with get,set
        member val TaxRate:Decimal = new Decimal() with get,set
        member val TotalPriceExcludingTax:Decimal = new Decimal() with get,set
        member val TotalPriceIncludingTax:Decimal = new Decimal() with get,set
        member val TotalTaxAmount:Decimal = new Decimal() with get,set
        member val CreditedAmount:Decimal = new Decimal() with get,set
        member val Type:ItemType = new ItemType() with get,set
        member val UnitPrice:Decimal = new Decimal() with get,set
        member val Uri:Uri = null with get,set

    [<AllowNullLiteral>]
    type Order() = 
        member val Currency:Currency = new Currency() with get,set
        member val TotalFeeExcludingTax:Decimal = new Decimal() with get,set
        member val TotalFeeIncludingTax:Decimal = new Decimal() with get,set
        member val TotalPriceExcludingTax:Decimal = new Decimal() with get,set
        member val TotalPriceIncludingTax:Decimal = new Decimal() with get,set
        member val TotalTaxAmount:Decimal = new Decimal() with get,set
        member val TotalCreditedAmount:Decimal = new Decimal() with get,set
        member val Items:IList<Item> = null with get,set

    [<AllowNullLiteral>]
    type Merchant() = 
        member val CheckoutUri:Uri = null with get,set
        member val ConfirmationUri:Uri = null with get,set
        member val NotificationUri:Uri = null with get,set
        member val ValidationUri:Uri = null with get,set
        member val TermsUri:Uri = null with get,set
        member val Reference:String = null with get,set
        member val PartnerId:String = null with get,set

    type ColorScheme =
        | White = 0
        | Blue = 1
        | Gray = 2
        | GrayTextLogos = 3
        | BlueTextLogos = 4
        | WhiteTextLogos = 5
        | WhiteNoFooter = 6
        | GrayNoFooter = 7
        | BlueNoFooter = 8

    [<AllowNullLiteral>]
    type Gui() = 
        member val ColorScheme:ColorScheme = new ColorScheme() with get,set
        member val Locale:String = null with get,set
        member val RequestPhone:Boolean = new Boolean() with get,set
        member val PhoneOptional:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type History() = 
        member val Created:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val ReadyToPay:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val ReadyToShip:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Shipped:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val PaidToAccount:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Canceled:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Expired:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Denied:Nullable<DateTime> = new Nullable<DateTime>() with get,set

    [<AllowNullLiteral>]
    type Payson2CheckoutResponse() = 
        member val Id:Guid = new Guid() with get,set
        member val ExpirationTime:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Snippet:String = null with get,set
        member val Status:Payson2CheckoutStatus = new Payson2CheckoutStatus() with get,set
        member val Customer:Customer = null with get,set
        member val Order:Order = null with get,set
        member val Merchant:Merchant = null with get,set
        member val Gui:Gui = null with get,set
        member val History:History = null with get,set
        member val PurchaseId:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type PaymentDetails() = 
        inherit BaseModel()
        [<Ignore>]
        member val QvicklyCheckoutSerialized:QvicklyCheckoutResponse = null with get,set

        [<Ignore>]
        member val Payson2CheckoutSerialized:Payson2CheckoutResponse = null with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val BookingId:Int32 = new Int32() with get,set

        [<Required>]
        member val ExternalResponseData:String = null with get,set

        [<Required>]
        member val ExternalResponseReference:String = null with get,set

        [<Required>]
        member val PaymentProviderId:Int32 = new Int32() with get,set

        [<Required>]
        member val IsPayment:Boolean = new Boolean() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type BookingPrice() = 
        inherit BaseModel()
        [<References(typeof<Currency>)>]
        member val CurrencyId:String = null with get,set

        member val PriceId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val CurrencyInfo:Currency = null with get,set
        [<Ignore>]
        member val PriceText:String = null with get,set

        [<Ignore>]
        member val AppliedCodes:ResizeArray<AppliedRebateCodes> = new ResizeArray<AppliedRebateCodes>() with get,set

        [<Ignore>]
        member val IsRebate:Boolean = new Boolean() with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val BookingId:Int32 = new Int32() with get,set

        [<Required>]
        member val Quantity:Int32 = new Int32() with get,set

        member val Price:Nullable<Double> = new Nullable<Double>() with get,set
        member val VAT:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val Category:String = null with get,set
        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        [<Required>]
        member val Invoiced:Boolean = new Boolean() with get,set

        [<Required>]
        member val OccupiesSpot:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    type CompanyStatus =
        | Registered = 1
        | AwaitingApproval = 2
        | Approved = 3
        | Inactive = 4
        | ClosedDown = 5
        | NotApproved = 6

    [<AllowNullLiteral>]
    type CompanyType() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type CodeLockSystem() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Supplier:String = null with get,set

        member val LogoType:String = null with get,set
        [<Required>]
        member val Description:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type CodeLockSetting() = 
        inherit BaseModel()
        [<Ignore>]
        member val CodeLockSystemOptions:ResizeArray<CodeLockSystem> = new ResizeArray<CodeLockSystem>() with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        [<Required>]
        member val CodeLockSystemsId:Int32 = new Int32() with get,set

        [<Required>]
        member val ValidBeforeMinutes:Int32 = new Int32() with get,set

        [<Required>]
        member val ValidAfterMinutes:Int32 = new Int32() with get,set

        [<Required>]
        member val DeleteOldBySchedule:Boolean = new Boolean() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val SendEmailNotification:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendSMSNotification:Boolean = new Boolean() with get,set

        [<Required>]
        member val EmailNotificationTime:Int16 = new Int16() with get,set

        [<Required>]
        member val SMSNotificationTime:Int16 = new Int16() with get,set

        [<Required>]
        member val Id:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type LanguageResponse() = 
        member val Id:String = null with get,set
        member val Name:String = null with get,set

    [<AllowNullLiteral>]
    type CompanySetting() = 
        inherit BaseModel()
        [<Ignore>]
        member val Languages:ResizeArray<LanguageResponse> = new ResizeArray<LanguageResponse>() with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val InactiveMessage:String = null with get,set
        [<Required>]
        member val Searchable:Boolean = new Boolean() with get,set

        member val GATrackingId:String = null with get,set
        member val FacebookPixelId:String = null with get,set
        [<Required>]
        member val MultiLanguage:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableAPITranslation:Boolean = new Boolean() with get,set

        [<Required>]
        member val DefaultLanguage:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val GTMTrackingId:String = null with get,set
        [<Required>]
        member val ShowOnMarketPlace:Boolean = new Boolean() with get,set

        member val GoogleAdsConversionId:String = null with get,set
        member val LinkedinTagId:String = null with get,set
        member val GoogleAdsConversionLabel:String = null with get,set
        [<Required>]
        member val Id:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type WidgetServiceLayouts() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Code:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type WidgetTimeLayouts() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Code:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type WidgetBookingLayouts() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Code:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type WidgetBookingMethods() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Code:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type HomepageWidgetSetting() = 
        inherit BaseModel()
        [<Ignore>]
        member val WidgetServiceLayoutOptions:ResizeArray<WidgetServiceLayouts> = new ResizeArray<WidgetServiceLayouts>() with get,set

        [<Ignore>]
        member val WidgetTimeLayoutOptions:ResizeArray<WidgetTimeLayouts> = new ResizeArray<WidgetTimeLayouts>() with get,set

        [<Ignore>]
        member val WidgetBookingLayoutOptions:ResizeArray<WidgetBookingLayouts> = new ResizeArray<WidgetBookingLayouts>() with get,set

        [<Ignore>]
        member val WidgetBookingMethodOptions:ResizeArray<WidgetBookingMethods> = new ResizeArray<WidgetBookingMethods>() with get,set

        [<Required>]
        member val ServiceLayoutId:Int32 = new Int32() with get,set

        [<Required>]
        member val TimeLayoutId:Int32 = new Int32() with get,set

        [<Required>]
        member val BookingLayoutId:Int32 = new Int32() with get,set

        [<Required>]
        member val PrimaryColor:String = null with get,set

        [<Required>]
        member val ShowServiceImage:Boolean = new Boolean() with get,set

        [<Required>]
        member val ShowNextAvailableTime:Boolean = new Boolean() with get,set

        [<Required>]
        member val ShowEndTime:Boolean = new Boolean() with get,set

        member val BookedTimeSlotText:String = null with get,set
        [<Required>]
        member val DarkTheme:Boolean = new Boolean() with get,set

        [<Required>]
        member val ShowRebateCodeField:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val EnableCreateAccount:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableLogin:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableDirectBooking:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableFacebookLogin:Boolean = new Boolean() with get,set

        [<Required>]
        member val Id:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type HomepageTemplate() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val ImageUrl:Uri = null with get,set
        [<Required>]
        member val Premium:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type HeroSectionStyle() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        member val Description:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type HomepageSetting() = 
        inherit BaseModel()
        [<Ignore>]
        member val HomepageTemplateOptions:ResizeArray<HomepageTemplate> = new ResizeArray<HomepageTemplate>() with get,set

        [<Ignore>]
        member val HomepageHeroSectionStyleOptions:ResizeArray<HeroSectionStyle> = new ResizeArray<HeroSectionStyle>() with get,set

        [<Ignore>]
        member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set

        member val WelcomePageHeading:String = null with get,set
        member val WelcomePageBody:String = null with get,set
        member val AboutUsPageHeading:String = null with get,set
        member val AboutUsPageBody:String = null with get,set
        [<Required>]
        member val HomePageTemplateId:Int32 = new Int32() with get,set

        member val ImageUrl:String = null with get,set
        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        member val HomepageHeading:String = null with get,set
        [<Required>]
        member val HeroSectionStyleId:Int32 = new Int32() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val ShowRating:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableHomepage:Boolean = new Boolean() with get,set

        [<Required>]
        member val Id:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type AverageRatingScore() = 
        member val AverageScore:Double = new Double() with get,set
        member val Score1Count:Int32 = new Int32() with get,set
        member val Score2Count:Int32 = new Int32() with get,set
        member val Score3Count:Int32 = new Int32() with get,set
        member val Score4Count:Int32 = new Int32() with get,set
        member val Score5Count:Int32 = new Int32() with get,set
        member val Count:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type Review() = 
        inherit BaseModel()
        member val ReviewId:Guid = new Guid() with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val Title:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Author:String = null with get,set

        [<Required>]
        member val Status:Int32 = new Int32() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val ReviewAnswer:String = null with get,set

    [<AllowNullLiteral>]
    type Rating() = 
        inherit BaseModel()
        member val ReviewId:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val Review:Review = null with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        [<Required>]
        member val BookingId:Int32 = new Int32() with get,set

        [<Required>]
        member val RatingScore:Int32 = new Int32() with get,set

        [<Required>]
        member val Status:Int32 = new Int32() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type LicenseTypeItem() = 
        inherit BaseModel()
        [<Ignore>]
        member val Name:String = null with get,set

        [<Required>]
        member val LicenseTypesId:Int32 = new Int32() with get,set

        [<Required>]
        member val LicenseItemsId:Int32 = new Int32() with get,set

        [<Required>]
        member val NumberOfItems:Int32 = new Int32() with get,set

        member val Id:Int32 = new Int32() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type Country() = 
        inherit BaseModel()
        [<References(typeof<Currency>)>]
        member val CurrencyId:String = null with get,set

        member val CurrencyInfo:Currency = null with get,set
        [<Required>]
        member val Name:String = null with get,set

        member val Culture:String = null with get,set
        member val TimeZone:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:String = null with get,set

    [<AllowNullLiteral>]
    type LicensePrice() = 
        inherit BaseModel()
        [<Ignore>]
        member val Country:Country = null with get,set

        [<Ignore>]
        member val MonthlyPayment:Boolean = new Boolean() with get,set

        [<Required>]
        member val LicenseTypeId:Int32 = new Int32() with get,set

        [<Required>]
        member val CountryId:String = null with get,set

        [<Required>]
        member val Price:Int32 = new Int32() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type LicenseType() = 
        inherit BaseModel()
        [<Ignore>]
        member val LicenseItems:IList<LicenseTypeItem> = null with get,set

        [<Ignore>]
        member val Prices:IList<LicensePrice> = null with get,set

        [<Ignore>]
        member val PeriodOfNoticeDays:Int32 = new Int32() with get,set

        [<Ignore>]
        member val NextLicenseOption:LicenseType = null with get,set

        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val ExtraLicenseOption:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type License() = 
        inherit BaseModel()
        member val Type:LicenseType = null with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val TypeId:Int32 = new Int32() with get,set

        [<Required>]
        member val ValidFrom:DateTime = new DateTime() with get,set

        [<Required>]
        member val ValidTo:DateTime = new DateTime() with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val MetaData:String = null with get,set

    [<AllowNullLiteral>]
    type CompanyCategory() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Header:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val ImageUrl:Uri = null with get,set
        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val SortOrder:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type Company() = 
        inherit BaseModel()
        [<Ignore>]
        member val Status:CompanyStatus = new CompanyStatus() with get,set

        [<Ignore>]
        member val Active:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val CustomerCustomFieldsConfig:IList<CustomFieldConfig> = null with get,set

        [<Ignore>]
        member val BookingAgreements:String = null with get,set

        [<Ignore>]
        member val BookingSettings:BookingSettings = null with get,set

        [<Ignore>]
        member val CompanyType:CompanyType = null with get,set

        [<Ignore>]
        member val CodeLockSettings:CodeLockSetting = null with get,set

        [<Ignore>]
        member val PaymentSettings:PaymentSetting = null with get,set

        [<Ignore>]
        member val Settings:CompanySetting = null with get,set

        [<Ignore>]
        member val WidgetSettings:HomepageWidgetSetting = null with get,set

        [<Ignore>]
        member val HomepageSettings:HomepageSetting = null with get,set

        [<Ignore>]
        member val RatingScore:AverageRatingScore = null with get,set

        [<Ignore>]
        member val Ratings:ResizeArray<Rating> = new ResizeArray<Rating>() with get,set

        [<Ignore>]
        member val Distance:Nullable<Double> = new Nullable<Double>() with get,set

        [<Ignore>]
        member val Licenses:ResizeArray<License> = new ResizeArray<License>() with get,set

        [<Ignore>]
        member val ActiveLicenses:ResizeArray<License> = new ResizeArray<License>() with get,set

        [<Ignore>]
        member val CurrentLicense:License = null with get,set

        [<Ignore>]
        member val IsFreeAccount:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val DefaultLanguage:CultureInfo = null with get,set

        member val Category:CompanyCategory = null with get,set
        [<Ignore>]
        member val Lat:Double = new Double() with get,set

        [<Ignore>]
        member val Lon:Double = new Double() with get,set

        [<Ignore>]
        member val IsFavorite:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val ExternalReferences:IList<ExternalReference> = null with get,set

        [<Required>]
        member val OrganisationNumber:String = null with get,set

        [<Required>]
        member val StatusId:Int32 = new Int32() with get,set

        [<Required>]
        member val CategoryId:Int32 = new Int32() with get,set

        [<Required>]
        member val SitePath:String = null with get,set

        [<Required>]
        member val Name:String = null with get,set

        member val Street1:String = null with get,set
        member val Street2:String = null with get,set
        member val ZipCode:String = null with get,set
        member val City:String = null with get,set
        member val OpeningHours:String = null with get,set
        member val FaxNumber:String = null with get,set
        [<Required>]
        member val Email:String = null with get,set

        member val Phone:String = null with get,set
        member val Details:String = null with get,set
        member val LogoType:String = null with get,set
        [<Required>]
        member val ApprovedByAdmin:Boolean = new Boolean() with get,set

        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        member val IpAddress:String = null with get,set
        member val Homepage:String = null with get,set
        member val DomainName:String = null with get,set
        [<Required>]
        member val CountryId:String = null with get,set

        [<Required>]
        member val CompanyOwnerId:Int32 = new Int32() with get,set

        member val TypeId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type BookingStatus() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Color:String = null with get,set

        [<Required>]
        member val Icon:String = null with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BookedResource() = 
        member val Id:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val Color:String = null with get,set
        member val ImageUrl:Uri = null with get,set
        member val Email:String = null with get,set
        member val MobilePhone:String = null with get,set
        member val AccessGroup:String = null with get,set
        member val EmailNotification:Boolean = new Boolean() with get,set
        member val SMSNotification:Boolean = new Boolean() with get,set
        member val EmailReminder:Boolean = new Boolean() with get,set
        member val SMSReminder:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type BookedResourceType() = 
        ///<summary>
        ///The resource type id
        ///</summary>
        [<ApiMember(Description="The resource type id")>]
        member val Id:Int32 = new Int32() with get,set

        ///<summary>
        ///The resource type name
        ///</summary>
        [<ApiMember(Description="The resource type name")>]
        member val Name:String = null with get,set

        ///<summary>
        ///The resources inside resource type
        ///</summary>
        [<ApiMember(Description="The resources inside resource type")>]
        member val Resources:ResizeArray<BookedResource> = new ResizeArray<BookedResource>() with get,set

    [<AllowNullLiteral>]
    type Booking() = 
        inherit BaseModel()
        [<Ignore>]
        member val Customer:Customer = null with get,set

        [<Ignore>]
        member val Service:Service = null with get,set

        [<Ignore>]
        member val CalendarExport:CalendarExport = null with get,set

        [<Ignore>]
        member val Log:ResizeArray<BookingLog> = new ResizeArray<BookingLog>() with get,set

        [<Ignore>]
        member val PaymentLog:ResizeArray<PaymentLog> = new ResizeArray<PaymentLog>() with get,set

        [<Ignore>]
        member val CheckoutLogs:ResizeArray<PaymentDetails> = new ResizeArray<PaymentDetails>() with get,set

        [<Ignore>]
        member val Prices:ResizeArray<BookingPrice> = new ResizeArray<BookingPrice>() with get,set

        [<Ignore>]
        member val Status:BookingStatusEnum = new BookingStatusEnum() with get,set

        [<Ignore>]
        member val isReserved:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val StatusName:String = null with get,set

        [<Ignore>]
        member val Company:Company = null with get,set

        [<References(typeof<Currency>)>]
        member val CurrencyId:String = null with get,set

        member val CurrencyInfo:Currency = null with get,set
        member val BookingStatus:BookingStatus = null with get,set
        [<Ignore>]
        member val TotalPrice:Nullable<Double> = new Nullable<Double>() with get,set

        [<Ignore>]
        member val TotalSpots:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<Ignore>]
        member val Resources:IList<Resource> = null with get,set

        [<Ignore>]
        member val ExternalReferences:IList<ExternalReference> = null with get,set

        [<Ignore>]
        member val BookedResources:IList<BookedResourceType> = null with get,set

        [<Ignore>]
        member val CustomFieldsConfig:IList<CustomFieldConfig> = null with get,set

        [<Ignore>]
        member val CustomFieldsData:IList<CustomFieldDataResponse> = null with get,set

        [<Ignore>]
        member val Active:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val LastTimeToUnBook:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        [<Ignore>]
        member val PriceMappings:ResizeArray<PriceMapping> = new ResizeArray<PriceMapping>() with get,set

        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val CustomerId:Guid = new Guid() with get,set

        [<Required>]
        member val ServiceId:Int32 = new Int32() with get,set

        [<Required>]
        member val StatusId:Int32 = new Int32() with get,set

        member val UnbookedOn:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val UnbookedComments:String = null with get,set
        member val BookedComments:String = null with get,set
        [<Required>]
        member val BookedBy:String = null with get,set

        member val UnBookedBy:String = null with get,set
        [<Required>]
        member val SendSmsReminder:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendEmailReminder:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendSmsConfirmation:Boolean = new Boolean() with get,set

        member val RebateCode:String = null with get,set
        member val Comments:String = null with get,set
        member val IpAddress:String = null with get,set
        [<Required>]
        member val NumberOfBookedSpots:Int32 = new Int32() with get,set

        member val CommentsToCustomer:String = null with get,set
        member val PaymentExpiration:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val PriceVat:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        [<Required>]
        member val SendEmailConfirmation:Boolean = new Boolean() with get,set

        member val CancellationCode:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val RatingCode:String = null with get,set
        member val TextField1:String = null with get,set
        member val TextField2:String = null with get,set
        member val TextField3:String = null with get,set
        member val TextField4:String = null with get,set
        member val TextField5:String = null with get,set
        member val TextField6:String = null with get,set
        member val TextField7:String = null with get,set
        member val TextField8:String = null with get,set
        member val TextField9:String = null with get,set
        member val TextField10:String = null with get,set
        member val TextField11:String = null with get,set
        member val TextField12:String = null with get,set
        member val TextField13:String = null with get,set
        member val TextField14:String = null with get,set
        member val TextField15:String = null with get,set
        member val TextField16:String = null with get,set
        member val TextField17:String = null with get,set
        member val TextField18:String = null with get,set
        member val TextField19:String = null with get,set
        member val TextField20:String = null with get,set
        [<Required>]
        member val From:DateTime = new DateTime() with get,set

        [<Required>]
        member val To:DateTime = new DateTime() with get,set

    [<AllowNullLiteral>]
    type Service() = 
        inherit BaseModel()
        [<Ignore>]
        member val ResourceTypes:ResizeArray<ResourceType> = new ResizeArray<ResourceType>() with get,set

        [<Ignore>]
        member val Resources:IEnumerable<Resource> = null with get,set

        [<Ignore>]
        member val TotalPrice:TotalPriceInformation = null with get,set

        [<Ignore>]
        member val Prices:ResizeArray<ServicePrice> = new ResizeArray<ServicePrice>() with get,set

        [<Ignore>]
        member val BookingStatusOptions:ResizeArray<BookingStatusOptions> = new ResizeArray<BookingStatusOptions>() with get,set

        [<Ignore>]
        member val IsGroupBooking:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val IsMultipleResource:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val Settings:BookingSettings = null with get,set

        [<Ignore>]
        member val PaymentSetting:PaymentSetting = null with get,set

        [<Ignore>]
        member val BookingCustomFieldsConfig:IList<CustomFieldConfig> = null with get,set

        [<Ignore>]
        member val CustomerCustomFieldsConfig:IList<CustomFieldConfig> = null with get,set

        [<Ignore>]
        member val CustomFieldsConfig:IList<CustomFieldConfig> = null with get,set

        [<Ignore>]
        member val CustomFieldsData:IList<CustomFieldDataResponse> = null with get,set

        [<Ignore>]
        member val Schedules:IList<ISchedule> = null with get,set

        [<Ignore>]
        member val CustomerActiveBookings:IList<Booking> = null with get,set

        [<Ignore>]
        member val ScheduleType:ScheduleType = new ScheduleType() with get,set

        [<Ignore>]
        member val LastTimeToUnbookThreshold:TimeSpan = new TimeSpan() with get,set

        [<Ignore>]
        member val LastTimeToBookThreshold:TimeSpan = new TimeSpan() with get,set

        [<Ignore>]
        member val RatingScore:AverageRatingScore = null with get,set

        [<Ignore>]
        member val Ratings:ResizeArray<Rating> = new ResizeArray<Rating>() with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        member val Group:String = null with get,set
        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        [<Required>]
        member val SortOrder:Int32 = new Int32() with get,set

        [<Required>]
        member val PauseAfterBooking:Int32 = new Int32() with get,set

        [<Required>]
        member val UnbookBeforeDays:Int32 = new Int32() with get,set

        [<Required>]
        member val UnbookBeforeHours:Int32 = new Int32() with get,set

        [<Required>]
        member val UnbookBeforeMinutes:Int32 = new Int32() with get,set

        [<Required>]
        member val BookBeforeDays:Int32 = new Int32() with get,set

        [<Required>]
        member val BookBeforeHours:Int32 = new Int32() with get,set

        [<Required>]
        member val BookBeforeMinutes:Int32 = new Int32() with get,set

        member val Duration:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val DurationTypeId:Int32 = new Int32() with get,set
        member val MinDuration:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val MaxDuration:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val DurationInterval:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val TotalSpots:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ImageUrl:String = null with get,set
        [<Required>]
        member val ScheduleTypeId:Int32 = new Int32() with get,set

        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val OnlyVisibleByAdmin:Boolean = new Boolean() with get,set

        [<Required>]
        member val MaxNumberOfSpotsPerBooking:Int32 = new Int32() with get,set

        [<Required>]
        member val MinNumberOfResourcesToBook:Int32 = new Int32() with get,set

        [<Required>]
        member val MaxNumberOfResourcesToBook:Int32 = new Int32() with get,set

        [<Required>]
        member val IsPaymentEnabled:Boolean = new Boolean() with get,set

        [<Required>]
        member val MaxPaymentTime:Int32 = new Int32() with get,set

        [<Required>]
        member val LockSpotsToBooking:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableBookingQueue:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val BookingStatusId:Int32 = new Int32() with get,set

        [<Required>]
        member val EnableCodeLockSync:Boolean = new Boolean() with get,set

        [<Required>]
        member val EnableCustomerManualPayment:Boolean = new Boolean() with get,set

        member val PriceViewTypeId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val TextField1:String = null with get,set
        member val TextField2:String = null with get,set
        member val TextField3:String = null with get,set
        member val TextField4:String = null with get,set
        member val TextField5:String = null with get,set
        member val TextField6:String = null with get,set
        member val TextField7:String = null with get,set
        member val TextField8:String = null with get,set
        member val TextField9:String = null with get,set
        member val TextField10:String = null with get,set
        member val TextField11:String = null with get,set
        member val TextField12:String = null with get,set
        member val TextField13:String = null with get,set
        member val TextField14:String = null with get,set
        member val TextField15:String = null with get,set
        member val TextField16:String = null with get,set
        member val TextField17:String = null with get,set
        member val TextField18:String = null with get,set
        member val TextField19:String = null with get,set
        member val TextField20:String = null with get,set

    [<AllowNullLiteral>]
    type CustomFieldServiceRelation() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val CustomFieldConfigId:Int32 = new Int32() with get,set

        [<Required>]
        member val ServiceId:Int32 = new Int32() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type CustomFieldConfig() = 
        inherit BaseModel()
        [<Ignore>]
        member val Values:ResizeArray<CustomFieldValue> = new ResizeArray<CustomFieldValue>() with get,set

        member val CustomField:CustomField = null with get,set
        [<Ignore>]
        member val RegEx:RegEx = null with get,set

        [<Ignore>]
        member val Services:ResizeArray<Service> = new ResizeArray<Service>() with get,set

        member val CustomFieldServiceRelation:ResizeArray<CustomFieldServiceRelation> = new ResizeArray<CustomFieldServiceRelation>() with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        member val GroupId:Nullable<Int32> = new Nullable<Int32>() with get,set
        [<Required>]
        member val FieldId:Int32 = new Int32() with get,set

        [<Required>]
        member val IconId:Int32 = new Int32() with get,set

        member val RegExId:Nullable<Int32> = new Nullable<Int32>() with get,set
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val Datatype:String = null with get,set

        [<Required>]
        member val MaxLength:Int32 = new Int32() with get,set

        [<Required>]
        member val IsPublic:Boolean = new Boolean() with get,set

        [<Required>]
        member val IsHidden:Boolean = new Boolean() with get,set

        [<Required>]
        member val IsMandatory:Boolean = new Boolean() with get,set

        member val DefaultValue:String = null with get,set
        member val RegExErrorMessage:String = null with get,set
        member val MandatoryErrorMessage:String = null with get,set
        member val Width:Nullable<Int32> = new Nullable<Int32>() with get,set
        [<Required>]
        member val MultipleLineText:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type Resource() = 
        inherit BaseModel()
        [<Ignore>]
        member val Priority:Int32 = new Int32() with get,set

        [<Ignore>]
        member val Schedules:IList<ISchedule> = null with get,set

        [<Ignore>]
        member val Exceptions:IList<ITimeException> = null with get,set

        [<Ignore>]
        member val Bookings:IList<IBookedTime> = null with get,set

        [<Ignore>]
        member val CustomFieldsConfig:IList<CustomFieldConfig> = null with get,set

        [<Ignore>]
        member val CustomFieldsData:IList<CustomFieldDataResponse> = null with get,set

        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val Description:String = null with get,set
        member val ImageUrl:String = null with get,set
        [<Required>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        [<Required>]
        member val Color:String = null with get,set

        member val Email:String = null with get,set
        member val MobilePhone:String = null with get,set
        member val EmailNotification:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val SMSNotification:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        [<Required>]
        member val SendSMSReminder:Boolean = new Boolean() with get,set

        [<Required>]
        member val SendEmailReminder:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val AccessGroup:String = null with get,set
        member val TextField1:String = null with get,set
        member val TextField2:String = null with get,set
        member val TextField3:String = null with get,set
        member val TextField4:String = null with get,set
        member val TextField5:String = null with get,set
        member val TextField6:String = null with get,set
        member val TextField7:String = null with get,set
        member val TextField8:String = null with get,set
        member val TextField9:String = null with get,set
        member val TextField10:String = null with get,set
        member val TextField11:String = null with get,set
        member val TextField12:String = null with get,set
        member val TextField13:String = null with get,set
        member val TextField14:String = null with get,set
        member val TextField15:String = null with get,set
        member val TextField16:String = null with get,set
        member val TextField17:String = null with get,set
        member val TextField18:String = null with get,set
        member val TextField19:String = null with get,set
        member val TextField20:String = null with get,set

    [<AllowNullLiteral>]
    type ISchedule = 
        abstract Resources:IList<Resource> with get,set
        abstract Type:ScheduleType with get,set
        abstract Active:Boolean with get,set
        abstract IsResourceSpecific:Boolean with get,set

    [<AllowNullLiteral>]
    type ServiceSchedules() = 
        member val ScheduleType:ScheduleType = new ScheduleType() with get,set
        member val RecurringSchedules:ResizeArray<ISchedule> = new ResizeArray<ISchedule>() with get,set
        member val DateSchedules:ResizeArray<ISchedule> = new ResizeArray<ISchedule>() with get,set

    [<AllowNullLiteral>]
    type CompanyRatingSummary() = 
        ///<summary>
        ///The average rating score
        ///</summary>
        [<ApiMember(Description="The average rating score")>]
        member val AverageScore:Double = new Double() with get,set

        ///<summary>
        ///The number of ratings of score 1
        ///</summary>
        [<ApiMember(Description="The number of ratings of score 1")>]
        member val RatingScore1Count:Int32 = new Int32() with get,set

        ///<summary>
        ///The number of ratings of score 2
        ///</summary>
        [<ApiMember(Description="The number of ratings of score 2")>]
        member val RatingScore2Count:Int32 = new Int32() with get,set

        ///<summary>
        ///The number of ratings of score 3
        ///</summary>
        [<ApiMember(Description="The number of ratings of score 3")>]
        member val RatingScore3Count:Int32 = new Int32() with get,set

        ///<summary>
        ///The number of ratings of score 4
        ///</summary>
        [<ApiMember(Description="The number of ratings of score 4")>]
        member val RaingScore4Count:Int32 = new Int32() with get,set

        ///<summary>
        ///The number of ratings of score 5
        ///</summary>
        [<ApiMember(Description="The number of ratings of score 5")>]
        member val RatingScore5Count:Int32 = new Int32() with get,set

        ///<summary>
        ///The number of ratings
        ///</summary>
        [<ApiMember(Description="The number of ratings")>]
        member val Count:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type RatingReviewResponse() = 
        ///<summary>
        ///The title for the review
        ///</summary>
        [<ApiMember(Description="The title for the review")>]
        member val Title:String = null with get,set

        ///<summary>
        ///The description for the review
        ///</summary>
        [<ApiMember(Description="The description for the review")>]
        member val Description:String = null with get,set

        ///<summary>
        ///The rating score
        ///</summary>
        [<ApiMember(Description="The rating score")>]
        member val RatingScore:Int32 = new Int32() with get,set

        ///<summary>
        ///The review author
        ///</summary>
        [<ApiMember(Description="The review author")>]
        member val Author:String = null with get,set

        ///<summary>
        ///The created date
        ///</summary>
        [<ApiMember(Description="The created date")>]
        member val Created:DateTime = new DateTime() with get,set

        ///<summary>
        ///The review answer from the company
        ///</summary>
        [<ApiMember(Description="The review answer from the company")>]
        member val ReviewAnswer:String = null with get,set

    [<AllowNullLiteral>]
    type ServiceResourceTypeResource() = 
        ///<summary>
        ///The resource id
        ///</summary>
        [<ApiMember(Description="The resource id")>]
        member val Id:Int32 = new Int32() with get,set

        ///<summary>
        ///The resource name
        ///</summary>
        [<ApiMember(Description="The resource name")>]
        member val Name:String = null with get,set

        ///<summary>
        ///The resource description
        ///</summary>
        [<ApiMember(Description="The resource description")>]
        member val Description:String = null with get,set

        ///<summary>
        ///The resource email
        ///</summary>
        [<ApiMember(Description="The resource email")>]
        member val Email:String = null with get,set

        ///<summary>
        ///The resource phone
        ///</summary>
        [<ApiMember(Description="The resource phone")>]
        member val Phone:String = null with get,set

        ///<summary>
        ///The resource color
        ///</summary>
        [<ApiMember(Description="The resource color")>]
        member val Color:String = null with get,set

        ///<summary>
        ///The resource image
        ///</summary>
        [<ApiMember(Description="The resource image")>]
        member val ImageUrl:Uri = null with get,set

        ///<summary>
        ///The priority of the resource
        ///</summary>
        [<ApiMember(Description="The priority of the resource")>]
        member val Priority:Int32 = new Int32() with get,set

        ///<summary>
        ///If the resource want to receive email notifications
        ///</summary>
        [<ApiMember(Description="If the resource want to receive email notifications")>]
        member val EmailNotification:Boolean = new Boolean() with get,set

        ///<summary>
        ///If the resource want to receive sms notifications
        ///</summary>
        [<ApiMember(Description="If the resource want to receive sms notifications")>]
        member val SMSNotification:Boolean = new Boolean() with get,set

        ///<summary>
        ///If the resource want to receive email reminders
        ///</summary>
        [<ApiMember(Description="If the resource want to receive email reminders")>]
        member val EmailReminder:Boolean = new Boolean() with get,set

        ///<summary>
        ///If the resource want to receive sms reminders
        ///</summary>
        [<ApiMember(Description="If the resource want to receive sms reminders")>]
        member val SMSReminder:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type ServiceResourceTypeResponse() = 
        ///<summary>
        ///The resourcetype id
        ///</summary>
        [<ApiMember(Description="The resourcetype id")>]
        member val Id:Int32 = new Int32() with get,set

        ///<summary>
        ///The resourcetype is selectable by customer
        ///</summary>
        [<ApiMember(Description="The resourcetype is selectable by customer")>]
        member val SelectableByUser:Boolean = new Boolean() with get,set

        ///<summary>
        ///The resourcetype name
        ///</summary>
        [<ApiMember(Description="The resourcetype name")>]
        member val Name:String = null with get,set

        ///<summary>
        ///The resourcetype description
        ///</summary>
        [<ApiMember(Description="The resourcetype description")>]
        member val Description:String = null with get,set

        ///<summary>
        ///The resources in the resourcetype. Only shows active resources if not admin.
        ///</summary>
        [<ApiMember(Description="The resources in the resourcetype. Only shows active resources if not admin.")>]
        member val Resources:ResizeArray<ServiceResourceTypeResource> = new ResizeArray<ServiceResourceTypeResource>() with get,set

    [<AllowNullLiteral>]
    type ServiceQueryResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val Description:String = null with get,set
        member val ImageUrl:Uri = null with get,set
        member val TotalSpots:Int32 = new Int32() with get,set
        ///<summary>
        ///If this setting is turned on the remaining spots (if Totalspots > 1) is locked from be booked by another customer.
        ///</summary>
        [<ApiMember(Description="If this setting is turned on the remaining spots (if Totalspots > 1) is locked from be booked by another customer.")>]
        member val LockSpotsToBooking:Nullable<Boolean> = new Nullable<Boolean>() with get,set

        member val MaxNumberOfSpotsPerBooking:Int32 = new Int32() with get,set
        member val MinNumberOfResourcesToBook:Int32 = new Int32() with get,set
        member val MaxNumberOfResourcesToBook:Int32 = new Int32() with get,set
        member val UnbookBeforeDays:Int32 = new Int32() with get,set
        member val UnbookBeforeHours:Int32 = new Int32() with get,set
        member val UnbookBeforeMinutes:Int32 = new Int32() with get,set
        ///<summary>
        ///What type of schedule is connected to the service.  RecurringSchedule = 1, DateSchedule = 2
        ///</summary>
        [<ApiMember(Description="What type of schedule is connected to the service.  RecurringSchedule = 1, DateSchedule = 2")>]
        member val ScheduleType:ScheduleType = new ScheduleType() with get,set

        ///<summary>
        ///What type of schedule is connected to the service.  RecurringSchedule = 1, DateSchedule = 2
        ///</summary>
        [<ApiMember(Description="What type of schedule is connected to the service.  RecurringSchedule = 1, DateSchedule = 2")>]
        member val ScheduleTypeId:Int32 = new Int32() with get,set

        member val BookBeforeDays:Int32 = new Int32() with get,set
        member val BookBeforeHours:Int32 = new Int32() with get,set
        member val BookBeforeMinutes:Int32 = new Int32() with get,set
        member val Group:String = null with get,set
        member val EnableBookingQueue:Boolean = new Boolean() with get,set
        member val EnableCodeLockSync:Boolean = new Boolean() with get,set
        member val EnableCustomerManualPayment:Boolean = new Boolean() with get,set
        member val SortOrder:Int32 = new Int32() with get,set
        member val Active:Boolean = new Boolean() with get,set
        member val IsGroupBooking:Boolean = new Boolean() with get,set
        member val GroupBooking:GroupBookingSettings = null with get,set
        member val MultipleResource:MultipleResourceSettings = null with get,set
        member val IsPaymentEnabled:Boolean = new Boolean() with get,set
        ///<summary>
        ///Maximum numbers of minutes the booking payment must be completed before automatically unbooked
        ///</summary>
        [<ApiMember(Description="Maximum numbers of minutes the booking payment must be completed before automatically unbooked")>]
        member val MaxPaymentTime:Int32 = new Int32() with get,set

        ///<summary>
        ///If the booking should be either 1 = Booked) or 3 = Reserved. Default is 1 = Booked.
        ///</summary>
        [<ApiMember(Description="If the booking should be either 1 = Booked) or 3 = Reserved. Default is 1 = Booked.")>]
        member val BookingStatusId:Int32 = new Int32() with get,set

        member val OnlyVisibleByAdmin:Boolean = new Boolean() with get,set
        member val LengthInMinutes:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val DurationTypeId:Int32 = new Int32() with get,set
        member val Duration:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val MinDuration:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val MaxDuration:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val DurationInterval:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val PauseAfterBooking:Int32 = new Int32() with get,set
        member val CustomFields:ResizeArray<CustomFieldConfigData> = new ResizeArray<CustomFieldConfigData>() with get,set
        member val CustomFieldValues:ResizeArray<CustomFieldDataResponse> = new ResizeArray<CustomFieldDataResponse>() with get,set
        member val BookingCustomFields:ResizeArray<CustomFieldConfigData> = new ResizeArray<CustomFieldConfigData>() with get,set
        member val CustomerCustomFields:ResizeArray<CustomFieldConfigData> = new ResizeArray<CustomFieldConfigData>() with get,set
        ///<summary>
        ///The booking status options to choose from
        ///</summary>
        [<ApiMember(Description="The booking status options to choose from")>]
        member val BookingStatusOptions:ResizeArray<BookingStatusOptionsResponse> = new ResizeArray<BookingStatusOptionsResponse>() with get,set

        member val Prices:ResizeArray<ServicePriceResponse> = new ResizeArray<ServicePriceResponse>() with get,set
        member val Schedules:ServiceSchedules = null with get,set
        member val RatingSummary:CompanyRatingSummary = null with get,set
        member val Reviews:ResizeArray<RatingReviewResponse> = new ResizeArray<RatingReviewResponse>() with get,set
        member val ResourceTypes:ResizeArray<ServiceResourceTypeResponse> = new ResizeArray<ServiceResourceTypeResponse>() with get,set
        member val ResponseStatus:ResponseStatus = null with get,set
        member val PriceViewTypeId:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type GroupedServiceQueryResponse() = 
        member val Group:String = null with get,set
        member val SortOrder:Int32 = new Int32() with get,set
        member val Items:ResizeArray<ServiceQueryResponse> = new ResizeArray<ServiceQueryResponse>() with get,set
        member val ResponseStatus:ResponseStatus = null with get,set

    [<AllowNullLiteral>]
    type GroupedServiceQuery() = 
        inherit QueryDb<Service, GroupedServiceQueryResponse>()
        ///<summary>
        ///Company to show services for
        ///</summary>
        [<ApiMember(Description="Company to show services for", ParameterType="query")>]
        member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///Service status
        ///</summary>
        [<ApiMember(DataType="boolean", Description="Service status", ParameterType="query")>]
        member val Active:Nullable<Boolean> = new Nullable<Boolean>() with get,set

        ///<summary>
        ///If you want to include the connected resource types and resources
        ///</summary>
        [<ApiMember(Description="If you want to include the connected resource types and resources", ParameterType="query")>]
        member val IncludeResources:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you want to include the connected schedules
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the connected schedules", ParameterType="query")>]
        member val IncludeSchedules:Boolean = new Boolean() with 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")>]
        member val IncludeCustomFields:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you want to include the connected resource types and resources
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the connected resource types and resources", ParameterType="query")>]
        member val IncludeCustomFieldValues:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you want to include the connected custom fields needs to be entered when booking a new time on the service
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the connected custom fields needs to be entered when booking a new time on the service", ParameterType="query")>]
        member val IncludeBookingCustomFields:Boolean = new Boolean() with 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")>]
        member val IncludeCustomerCustomFields:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you want to include the service prices
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the service prices", ParameterType="query")>]
        member val IncludePrices:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you have selected to include the prices, here you can set the date to show the prices for
        ///</summary>
        [<ApiMember(DataType="dateTime", Description="If you have selected to include the prices, here you can set the date to show the prices for", ParameterType="query")>]
        member val PriceDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///If you have selected to include the prices, here you can set the datetime to show the exact price
        ///</summary>
        [<ApiMember(DataType="timeSpan", Description="If you have selected to include the prices, here you can set the datetime to show the exact price", ParameterType="query")>]
        member val PriceTime:Nullable<TimeSpan> = new Nullable<TimeSpan>() with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type QueryBase() = 
        ///<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)>]
        member val Skip:Nullable<Int32> = new Nullable<Int32>() with 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)>]
        member val Take:Nullable<Int32> = new Nullable<Int32>() with 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)>]
        member val OrderBy:String = null with 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)>]
        member val OrderByDesc:String = null with 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)>]
        member val Include:String = null with get,set

        [<DataMember(Order=6)>]
        member val Fields:String = null with get,set

        [<DataMember(Order=7)>]
        member val Meta:Dictionary<String, String> = new Dictionary<String, String>() with get,set

    [<AllowNullLiteral>]
    type QueryDb<From, Into>() = 
        inherit QueryBase()

    [<AllowNullLiteral>]
    type Currency() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val CurrencySign:String = null with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:String = null with get,set

    [<AllowNullLiteral>]
    type Customer() = 
        inherit BaseModel()
        member val IdentityId:Int32 = new Int32() with get,set
        member val Id:Guid = new Guid() with get,set
        [<Ignore>]
        member val CustomerId:Guid = new Guid() with get,set

        [<Ignore>]
        member val AccessKeys:IList<UserAccessKeys> = null with get,set

        member val Email:String = null with get,set
        [<Ignore>]
        member val ExternalReferences:IList<ExternalReference> = null with get,set

        [<Ignore>]
        member val CustomFieldsConfig:IList<CustomFieldConfig> = null with get,set

        [<Ignore>]
        member val CustomFieldsData:IList<CustomFieldDataResponse> = null with get,set

        [<Ignore>]
        member val Comments:IList<CustomerComment> = null with get,set

        member val Firstname:String = null with get,set
        [<Ignore>]
        member val ImageUrl:String = null with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val FacebookUsername:String = null with get,set
        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        member val IpAddress:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val TextField1:String = null with get,set
        member val TextField2:String = null with get,set
        member val TextField3:String = null with get,set
        member val TextField4:String = null with get,set
        member val TextField5:String = null with get,set
        member val TextField6:String = null with get,set
        member val TextField7:String = null with get,set
        member val TextField8:String = null with get,set
        member val TextField9:String = null with get,set
        member val TextField10:String = null with get,set
        member val TextField11:String = null with get,set
        member val TextField12:String = null with get,set
        member val TextField13:String = null with get,set
        member val TextField14:String = null with get,set
        member val TextField15:String = null with get,set
        member val TextField16:String = null with get,set
        member val TextField17:String = null with get,set
        member val TextField18:String = null with get,set
        member val TextField19:String = null with get,set
        member val TextField20:String = null with get,set
        member val UserId:Guid = new Guid() with get,set
        member val Lastname:String = null with get,set
        member val Phone:String = null with get,set
        member val CorporateIdentityNumber:String = null with get,set
        member val InvoiceAddress1:String = null with get,set
        member val InvoiceAddress2:String = null with get,set
        member val InvoiceCity:String = null with get,set
        member val InvoicePostalCode:String = null with get,set
        member val InvoiceCountryCode:String = null with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val SubscribedToNewsletter:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type AccessKeyTypeResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val KeyType:String = null with get,set
        member val Description:String = null with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type QueryResponse<AccessKeyTypeResponse>() = 
        [<DataMember(Order=1)>]
        member val Offset:Int32 = new Int32() with get,set

        [<DataMember(Order=2)>]
        member val Total:Int32 = new Int32() with get,set

        [<DataMember(Order=3)>]
        member val Results:ResizeArray<AccessKeyTypeResponse> = new ResizeArray<AccessKeyTypeResponse>() with get,set

        [<DataMember(Order=4)>]
        member val Meta:Dictionary<String, String> = new Dictionary<String, String>() with get,set

        [<DataMember(Order=5)>]
        member val ResponseStatus:ResponseStatus = null with get,set

F# GroupedServiceQuery DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

GET /services/grouped HTTP/1.1 
Host: testapi.bokamera.se 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

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