BokaMera.API.Host

<back to all web services

GroupedBookingQuery

Requires Authentication
The following routes are available for this service:
GET/bookings/groupedFind booked events for currently logged in user grouped by booking from dateThis service is used to get bookings for the current user, the result will grouped by the bookings fromm date and paged if the query returns a to large set of values.
namespace BokaMera.API.ServiceModel.Db

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

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

    [<AllowNullLiteral>]
    type BookingStatusQueryResponse() = 
        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 Icon:String = null with get,set
        member val Color:String = null 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 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 BookedCompany() = 
        member val Id:Guid = new Guid() with get,set
        member val Name:String = null with get,set
        member val LogoType:Uri = null with get,set
        member val Category: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 CountryId:String = null with get,set
        member val Longitude:String = null with get,set
        member val Latitude:String = null with get,set
        member val Phone:String = null with get,set
        member val Email:String = null with get,set
        member val HomePage:String = null with get,set
        member val SitePath:String = null with get,set
        member val IsFavorite:Boolean = new Boolean() with get,set
        member val PaymentProviderId:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<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 BookedQuantity() = 
        ///<summary>
        ///The quantity Id
        ///</summary>
        [<ApiMember(Description="The quantity Id")>]
        member val Id:Int32 = new Int32() with get,set

        ///<summary>
        ///The quantity for booked on this price category
        ///</summary>
        [<ApiMember(Description="The quantity for booked on this price category")>]
        member val Quantity:Int32 = new Int32() with get,set

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

        ///<summary>
        ///The price bofore rebate codes
        ///</summary>
        [<ApiMember(Description="The price bofore rebate codes")>]
        member val PriceBeforeRebate:Nullable<Double> = new Nullable<Double>() 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 category
        ///</summary>
        [<ApiMember(Description="The price category")>]
        member val Category:String = null with get,set

        ///<summary>
        ///The price VAT in percent
        ///</summary>
        [<ApiMember(Description="The price VAT in percent")>]
        member val VAT:Nullable<Decimal> = new Nullable<Decimal>() 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>
        ///If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.
        ///</summary>
        [<ApiMember(Description="If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.")>]
        member val OccupiesSpot:Boolean = new Boolean() with get,set

    [<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 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 MinNumberOfSpotsPerBooking: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 BookingLogEventTypeResponse() = 
        ///<summary>
        ///The event type id
        ///</summary>
        [<ApiMember(Description="The event type id")>]
        member val Id:Int32 = new Int32() with get,set

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

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

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

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

        ///<summary>
        ///The type of event
        ///</summary>
        [<ApiMember(Description="The type of event")>]
        member val EventTypeId:Int32 = new Int32() with get,set

        ///<summary>
        ///The type of event
        ///</summary>
        [<ApiMember(Description="The type of event")>]
        member val EventType:BookingLogEventTypeResponse = null with get,set

        ///<summary>
        ///Comments that could be added to the event log item
        ///</summary>
        [<ApiMember(Description="Comments that could be added to the event log item")>]
        member val Comments:String = null with get,set

        ///<summary>
        ///The user created the event
        ///</summary>
        [<ApiMember(Description="The user created the event")>]
        member val UserName:String = null with get,set

        ///<summary>
        ///Then date when the event occured
        ///</summary>
        [<ApiMember(Description="Then date when the event occured")>]
        member val Created:DateTime = new DateTime() with get,set

    [<AllowNullLiteral>]
    type CurrencyInfoResponse() = 
        ///<summary>
        ///The currency id
        ///</summary>
        [<ApiMember(Description="The currency id")>]
        member val Id:String = null with get,set

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

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

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

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

        ///<summary>
        ///The payment reference id
        ///</summary>
        [<ApiMember(Description="The payment reference id")>]
        member val PaymentReferenceId:String = null with get,set

        ///<summary>
        ///The payment order item reference id
        ///</summary>
        [<ApiMember(Description="The payment order item reference id")>]
        member val OrderItemReferenceId:String = null with get,set

        ///<summary>
        ///The payment reference id
        ///</summary>
        [<ApiMember(Description="The payment reference id")>]
        member val PaymentProviderId:Nullable<Int32> = new Nullable<Int32>() with get,set

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

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

        ///<summary>
        ///The payment amount that is credited
        ///</summary>
        [<ApiMember(Description="The payment amount that is credited")>]
        member val AmountCredited:Double = new Double() with get,set

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

        ///<summary>
        ///The payment currency info
        ///</summary>
        [<ApiMember(Description="The payment currency info")>]
        member val CurrencyInfo:CurrencyInfoResponse = null with get,set

        ///<summary>
        ///Comments that could be added to the event log item
        ///</summary>
        [<ApiMember(Description="Comments that could be added to the event log item")>]
        member val Comments:String = null with get,set

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

        ///<summary>
        ///The date when the payment items was update
        ///</summary>
        [<ApiMember(Description="The date when the payment items was update")>]
        member val Updated:DateTime = new DateTime() with get,set

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

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

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

        ///<summary>
        ///The payment checkout expiration datetime
        ///</summary>
        [<ApiMember(Description="The payment checkout expiration datetime")>]
        member val ExpirationTime:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///The payment snippet code
        ///</summary>
        [<ApiMember(Description="The payment snippet code")>]
        member val Snippet:String = null with get,set

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

        ///<summary>
        ///Log message
        ///</summary>
        [<ApiMember(Description="Log message")>]
        member val Message:String = null with get,set

        ///<summary>
        ///When the checkout log item was created
        ///</summary>
        [<ApiMember(Description="When the checkout log item was created")>]
        member val Created:DateTime = new DateTime() with get,set

        ///<summary>
        ///When the checkout log item was updated
        ///</summary>
        [<ApiMember(Description="When the checkout log item was updated")>]
        member val Updated:DateTime = new DateTime() with get,set

    [<AllowNullLiteral>]
    type ExternalReferenceResponse() = 
        member val CompanyId:Guid = new Guid() with get,set
        member val Id:Guid = new Guid() with get,set
        member val OwnerId:Guid = new Guid() with get,set
        member val ReferenceType:String = null with get,set
        member val ExternalData:String = null with get,set
        member val CreatedBy:String = null with get,set
        member val Updated:DateTime = new DateTime() with get,set
        member val Created:DateTime = new DateTime() with get,set

    [<AllowNullLiteral>]
    type BookingCalendarExportStatus() = 
        member val CalendarId:String = null with get,set
        member val BookingId:Int32 = new Int32() with get,set
        member val Synced:Nullable<Boolean> = new Nullable<Boolean>() with get,set

    [<AllowNullLiteral>]
    type BookingQueryResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val CompanyId:Guid = new Guid() with get,set
        member val From:DateTime = new DateTime() with get,set
        member val To:DateTime = new DateTime() with get,set
        member val Status:BookingStatusEnum = new BookingStatusEnum() with get,set
        member val StatusId:Int32 = new Int32() with get,set
        member val StatusName:String = null with get,set
        member val StatusInfo:BookingStatusQueryResponse = null with get,set
        member val SendEmailReminder:Boolean = new Boolean() with get,set
        member val SendSmsReminder:Boolean = new Boolean() with get,set
        member val SendSmsConfirmation:Boolean = new Boolean() with get,set
        member val SendEmailConfirmation:Boolean = new Boolean() with get,set
        member val LastTimeToUnBook:Nullable<DateTime> = new Nullable<DateTime>() 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 BookedResourceTypes:ResizeArray<BookedResourceType> = new ResizeArray<BookedResourceType>() with get,set
        member val Company:BookedCompany = null with get,set
        member val Customer:BookedCustomer = null with get,set
        member val Quantities:ResizeArray<BookedQuantity> = new ResizeArray<BookedQuantity>() with get,set
        member val Service:ServiceInfoResponse = null with get,set
        member val PaymentExpiration:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Log:ResizeArray<BookingLogQueryResponse> = new ResizeArray<BookingLogQueryResponse>() with get,set
        member val PaymentLog:ResizeArray<BookingPaymentLogQueryResponse> = new ResizeArray<BookingPaymentLogQueryResponse>() with get,set
        member val CheckoutLog:ResizeArray<BookingCheckoutQueryResponse> = new ResizeArray<BookingCheckoutQueryResponse>() with get,set
        member val ExternalReference:ResizeArray<ExternalReferenceResponse> = new ResizeArray<ExternalReferenceResponse>() with get,set
        member val ResponseStatus:ResponseStatus = null with get,set
        member val CalendarExportStatus:BookingCalendarExportStatus = null with get,set
        member val LengthInMinutes:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val BookedBy:String = null with get,set
        member val BookedComments:String = null with get,set
        member val UnbookedComments:String = null with get,set
        member val CommentsToCustomer:String = null with get,set
        member val CreatedDate:DateTime = new DateTime() with get,set
        member val UpdatedDate:DateTime = new DateTime() with get,set
        member val UnbookedOn:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val CancellationCode:String = null with get,set
        member val RatingCode:String = null with get,set

    [<AllowNullLiteral>]
    type GroupedBookingQueryResponse() = 
        member val CompanyId:Guid = new Guid() with get,set
        member val Date:DateTime = new DateTime() with get,set
        member val Bookings:ResizeArray<BookingQueryResponse> = new ResizeArray<BookingQueryResponse>() with get,set

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

    [<AllowNullLiteral>]
    type IDbConnectionFactory = 
        interface end

    [<AllowNullLiteral>]
    type ServerData() = 
        member val HTTP_HOST:String = null with get,set
        member val HTTP_CONNECTION:String = null with get,set
        member val HTTP_CACHE_CONTROL:String = null with get,set
        member val HTTP_ACCEPT:String = null with get,set
        member val HTTP_USER_AGENT:String = null with get,set
        member val HTTP_ACCEPT_ENCODING:String = null with get,set
        member val HTTP_ACCEPT_LANGUAGE:String = null with get,set
        member val PATH:String = null with get,set
        member val SERVER_SOFTWARE:String = null with get,set
        member val SERVER_NAME:String = null with get,set
        member val SERVER_ADDR:String = null with get,set
        member val SERVER_PORT:String = null with get,set
        member val REMOTE_ADDR:String = null with get,set
        member val REMOTE_PORT:String = null with get,set
        member val GATEWAY_INTERFACE:String = null with get,set
        member val SERVER_PROTOCOL:String = null with get,set
        member val REQUEST_METHOD:String = null with get,set
        member val QUERY_STRING:String = null with get,set
        member val REQUEST_TIME:String = null with get,set

    [<AllowNullLiteral>]
    type Credentials() = 
        member val hash:String = null with get,set
        member val id:String = null with get,set
        member val version:String = null with get,set
        member val client:String = null with get,set
        member val serverdata:ServerData = null with get,set
        member val time:String = null with get,set
        member val test:String = null with get,set
        member val language:String = null with get,set

    [<AllowNullLiteral>]
    type CheckoutData() = 
        member val terms:Uri = null with get,set
        member val privacyPolicy:Uri = null with get,set
        member val redirectOnSuccess:String = null with get,set

    [<AllowNullLiteral>]
    type CheckoutPaymentData() = 
        member val currency:String = null with get,set
        member val language:String = null with get,set
        member val country:String = null with get,set
        member val autoactivate:String = null with get,set
        member val orderid:String = null with get,set
        member val returnmethod:String = null with get,set
        member val accepturl:Uri = null with get,set
        member val cancelurl:Uri = null with get,set
        member val callbackurl:Uri = null with get,set

    [<AllowNullLiteral>]
    type PaymentInfo() = 
        member val paymentdate:String = null with get,set
        member val paymentterms:String = null with get,set
        member val yourreference:String = null with get,set
        member val ourreference:String = null with get,set
        member val projectname:String = null with get,set
        member val deliverymethod:String = null with get,set
        member val deliveryterms:String = null with get,set

    [<AllowNullLiteral>]
    type CartHandling() = 
        member val withouttax:String = null with get,set
        member val taxrate:String = null with get,set

    [<AllowNullLiteral>]
    type CartTotal() = 
        member val rounding:String = null with get,set
        member val withouttax:String = null with get,set
        member val tax:String = null with get,set
        member val withtax:String = null with get,set

    [<AllowNullLiteral>]
    type Shipping() = 
        member val firstname:String = null with get,set
        member val lastname:String = null with get,set
        member val company:String = null with get,set
        member val street:String = null with get,set
        member val street2:String = null with get,set
        member val zip:String = null with get,set
        member val city:String = null with get,set
        member val country:String = null with get,set
        member val phone:String = null with get,set
        member val withouttax:String = null with get,set
        member val taxrate:String = null with get,set

    [<AllowNullLiteral>]
    type Cart() = 
        member val Handling:CartHandling = null with get,set
        member val Total:CartTotal = null with get,set
        member val Shipping:Shipping = null with get,set

    [<AllowNullLiteral>]
    type CustomerBilling() = 
        member val firstname:String = null with get,set
        member val lastname:String = null with get,set
        member val company:String = null with get,set
        member val street:String = null with get,set
        member val street2:String = null with get,set
        member val zip:String = null with get,set
        member val city:String = null with get,set
        member val country:String = null with get,set
        member val phone:String = null with get,set
        member val email:String = null with get,set

    [<AllowNullLiteral>]
    type QvicklyCustomer() = 
        member val nr:String = null with get,set
        member val pno:String = null with get,set
        member val Billing:CustomerBilling = null with get,set

    [<AllowNullLiteral>]
    type InitCheckoutData() = 
        member val CheckoutData:CheckoutData = null with get,set
        member val PaymentData:CheckoutPaymentData = null with get,set
        member val PaymentInfo:PaymentInfo = null with get,set
        member val Articles:QvicklyArticle[] = [||] with get,set
        member val Cart:Cart = null with get,set
        member val QvicklyCustomer:QvicklyCustomer = null with get,set

    [<AllowNullLiteral>]
    type InitCheckoutRequestBody() = 
        member val credentials:Credentials = null with get,set
        member val data:InitCheckoutData = null with get,set
        member val function:String = null 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

    [<AllowNullLiteral>]
    type QvikclyPaymentData() = 
        member val method:String = null with get,set
        member val paymentplanid:String = null with get,set
        member val currency:String = null with get,set
        member val country:String = null with get,set
        member val language:String = null with get,set
        member val autoactivate:String = null with get,set
        member val orderid:String = null with get,set
        member val status:String = null with get,set
        member val paymentid_related:String = null with get,set
        member val url:String = null with get,set

    [<AllowNullLiteral>]
    type Card() = 
        member val promptname:String = null with get,set
        member val recurring:String = null with get,set
        member val recurringnr:String = null with get,set
        member val accepturl:String = null with get,set
        member val cancelurl:String = null with get,set
        member val callbackurl:String = null with get,set
        member val returnmethod:String = null with get,set

    [<AllowNullLiteral>]
    type Settlement() = 
        member val number:String = null with get,set
        member val date:String = null with get,set

    [<AllowNullLiteral>]
    type QvicklyPaymentResponse() = 
        member val PaymentData:QvikclyPaymentData = null with get,set
        member val PaymentInfo:PaymentInfo = null with get,set
        member val Card:Card = null with get,set
        member val Settlement:Settlement = null with get,set
        member val QvicklyCustomer:QvicklyCustomer = null with get,set
        member val Articles:QvicklyArticle[] = [||] with get,set
        member val Cart:Cart = 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 CustomerType =
        | Person = 0
        | Business = 1

    [<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

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

    [<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

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

    [<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 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

    [<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 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 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

    [<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 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 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 ArticleServiceRelation() = 
        inherit BaseModel()
        [<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

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

    type ArticleTypeEnum =
        | ServiceArticle = 1
        | StandAloneArticle = 2
        | RebateCodePunchTicketArticle = 3
        | RebateCodeGiftCardArticle = 4
        | RebateCodeValueCardArticle = 5

    [<AllowNullLiteral>]
    type Article() = 
        inherit BaseModel()
        member val Company:Company = null with get,set
        member val CurrencyInfo:Currency = null with get,set
        member val ArticleServiceRelations:ResizeArray<ArticleServiceRelation> = new ResizeArray<ArticleServiceRelation>() with get,set
        [<Ignore>]
        member val ServiceIds:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set

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

        [<Ignore>]
        member val ArticleTypeName:String = 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 ArticleTypeId:Int32 = new Int32() with get,set

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

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

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

        [<Required>]
        [<StringLength(50)>]
        member val CurrencyId: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

    [<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
        member val RebateCodeEmailSentToCustomer:Boolean = new Boolean() with get,set
        member val MessageToReceiver:String = null with get,set
        member val Buyer:Boolean = new Boolean() 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 RebateCodeTransaction() = 
        inherit BaseModel()
        [<Ignore>]
        member val Booking:Booking = null with get,set

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

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

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

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

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

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

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

    [<AllowNullLiteral>]
    type RebateCode() = 
        inherit PayableEntity()
        [<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:RebateCodeStatus = null with get,set
        [<Ignore>]
        member val Article:Article = 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 ServicesNames:String = null with get,set

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

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

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

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

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

        [<Ignore>]
        member val RemainingUsage:Nullable<Int32> = new Nullable<Int32>() 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

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

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

        member val CurrencyInfo:Currency = null with get,set
        [<Ignore>]
        member val PaymentReceived:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val InternalReferenceId:String = null 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 UpdatedDate: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
        member val ArticleId:Nullable<Int32> = new Nullable<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 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 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 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 MinNumberOfSpotsPerBooking:Int32 = new Int32() 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 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
        member val SendCustomerInformationToExternalProviders:Boolean = new Boolean() 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 ShowSubscribeToNewsletter: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 LicenseTypeItem() = 
        inherit BaseModel()
        [<Ignore>]
        member val Name:String = null with get,set

        [<Ignore>]
        member val LicenseType:LicenseType = 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 Active:Boolean = new Boolean() 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 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

    [<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 Company:Company = 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

        [<Ignore>]
        member val RebateCodes:IList<RebateCode> = 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

    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 IPaysonPaymentCheckout1 = 
        interface end

    [<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 InternalReferenceId:String = null with get,set

        [<Required>]
        member val ArticleTypeId: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 PayableEntity() = 
        inherit BaseModel()
        [<Ignore>]
        member val DbFactory:IDbConnectionFactory = null with get,set

        [<Ignore>]
        member val QvicklyPaymentManager:IBokameraPaymentManager<InitCheckoutRequestBody, QvicklyCheckoutResponse, QvicklyPaymentResponse> = null with get,set

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

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

        [<Ignore>]
        member val Logger:ILogger<PayableEntity> = null with get,set

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

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

        member val CompanyId:Guid = new Guid() with get,set
        member val PriceVat:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        [<References(typeof<Currency>)>]
        member val CurrencyId:String = null with get,set

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

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

        [<Ignore>]
        member val Company:Company = null 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 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 InternalReferenceId:String = null with get,set

        [<Required>]
        member val ArticleTypeId: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 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

    [<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 Booking() = 
        inherit PayableEntity()
        [<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 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

        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 DeterministicId:Guid = new Guid() 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

        [<Ignore>]
        member val InternalReferenceId: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 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
        [<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

    [<ValidateRequest(Validator="IsAuthenticated")>]
    [<AllowNullLiteral>]
    type GroupedBookingQuery() = 
        inherit QueryDb<Booking, GroupedBookingQueryResponse>()
        ///<summary>
        ///Query for specific Booked Resources, default is all resources
        ///</summary>
        [<DataMember(Name="BookedResourceIds")>]
        [<ApiMember(Description="Query for specific Booked Resources, default is all resources", ParameterType="query")>]
        member val BookingResourceRelationResourceIds:Int32[] = null with get,set

        ///<summary>
        ///Query for specific Booked Resource types, default is all resource types
        ///</summary>
        [<DataMember(Name="BookedResourceTypeIds")>]
        [<ApiMember(Description="Query for specific Booked Resource types, default is all resource types", ParameterType="query")>]
        member val BookingResourceRelationResourceTypeIds:Int32[] = null with get,set

        ///<summary>
        ///The company id, if empty will use the company id for the user you are logged in with.
        ///</summary>
        [<ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")>]
        member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///Id of the booking
        ///</summary>
        [<ApiMember(Description="Id of the booking", ParameterType="path")>]
        member val Id:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///Start of interval to query for bookings. UTC+0 and parameter as defined by date-time - RFC3339
        ///</summary>
        [<ApiMember(DataType="dateTime", Description="Start of interval to query for bookings. UTC+0 and parameter as defined by date-time - RFC3339", ParameterType="query")>]
        member val BookingStart:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///End of interval to query for bookings. UTC+0 and parameter as defined by date-time - RFC3339
        ///</summary>
        [<ApiMember(DataType="dateTime", Description="End of interval to query for bookings. UTC+0 and parameter as defined by date-time - RFC3339", ParameterType="query")>]
        member val BookingEnd:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///Set to true if you want to include all bookings for the company. Only administrators are allowed to do this.
        ///</summary>
        [<ApiMember(DataType="boolean", Description="Set to true if you want to include all bookings for the company. Only administrators are allowed to do this.", ParameterType="query")>]
        member val CompanyBookings:Boolean = new Boolean() with get,set

        ///<summary>
        ///Query for specific booking statuses. Valid statuses are TimeBooked = 1, TimeUnbooked = 2, TimeReserved = 3, TimeCanceled = 4. Default is 1,3 for active statuses.
        ///</summary>
        [<ApiMember(Description="Query for specific booking statuses. Valid statuses are TimeBooked = 1, TimeUnbooked = 2, TimeReserved = 3, TimeCanceled = 4. Default is 1,3 for active statuses.", ParameterType="query")>]
        member val IncludeStatuses:Int32[] = null with get,set

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

        ///<summary>
        ///If you want to include the price information on the booking
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the price information on the booking", ParameterType="query")>]
        member val IncludePriceInformation:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you want to include booking status information
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include booking status information", ParameterType="query")>]
        member val IncludeStatusInformation:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you want to include the payment log on the booking
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the payment log on the booking", ParameterType="query")>]
        member val IncludePaymentLog:Boolean = new Boolean() with get,set

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

        ///<summary>
        ///If you want to include the booked resourcetypes and it's booked resources
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the booked resourcetypes and it's booked resources", ParameterType="query")>]
        member val IncludeBookedResourceTypes:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you want to include the company information for the booking
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the company information for the booking", ParameterType="query")>]
        member val IncludeCompanyInformation:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you want to include the customer information for the booking
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the customer information for the booking", ParameterType="query")>]
        member val IncludeCustomerInformation:Boolean = new Boolean() with get,set

        ///<summary>
        ///Start of interval to query for bookings when they where created. UTC+0 and parameter as defined by date-time - RFC3339
        ///</summary>
        [<ApiMember(DataType="dateTime", Description="Start of interval to query for bookings when they where created. UTC+0 and parameter as defined by date-time - RFC3339", ParameterType="query")>]
        member val CreatedFrom:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///End of interval to query for bookings when they where created. UTC+0 and parameter as defined by date-time - RFC3339
        ///</summary>
        [<ApiMember(DataType="dateTime", Description="End of interval to query for bookings when they where created. UTC+0 and parameter as defined by date-time - RFC3339", ParameterType="query")>]
        member val CreatedTo:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///Query for specific booking statuses. Valid statuses are TimeBooked = 1, TimeUnbooked = 2, TimeReserved = 3, TimeCanceled = 4, AwaitingPayment = 5, AwaitingPaymentNoTimeLimit = 6, BookedAndPayed = 7, 8 = AwaitingPaymentRequestFromAdmin, 9 = AwaitingPaymentFromProvider. Default is all.
        ///</summary>
        [<ApiMember(Description="Query for specific booking statuses. Valid statuses are TimeBooked = 1, TimeUnbooked = 2, TimeReserved = 3, TimeCanceled = 4, AwaitingPayment = 5, AwaitingPaymentNoTimeLimit = 6, BookedAndPayed = 7, 8 = AwaitingPaymentRequestFromAdmin, 9 = AwaitingPaymentFromProvider. Default is all.", ParameterType="query")>]
        member val StatusIds:Int32[] = null with get,set

        ///<summary>
        ///Query for specific customer
        ///</summary>
        [<ApiMember(Description="Query for specific customer", ParameterType="query")>]
        member val CustomerId:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///The max limit of records you want to retrieve, default is 100
        ///</summary>
        [<ApiMember(DataType="int", Description="The max limit of records you want to retrieve, default is 100", ParameterType="query")>]
        member val MaxLimit:Nullable<Int32> = new Nullable<Int32>() with get,set

        member val ResponseStatus:ResponseStatus = null 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 IBokameraPaymentManager<TCreatedCheckoutResponse, TCheckoutResponse, TPaymentResponse> = 
        interface end

    [<AllowNullLiteral>]
    type QvicklyArticle() = 
        member val artnr:String = null with get,set
        member val title:String = null with get,set
        member val quantity:Int32 = new Int32() with get,set
        member val aprice:Int32 = new Int32() with get,set
        member val tax:Int32 = new Int32() with get,set
        member val discount:Int32 = new Int32() with get,set
        member val withouttax:Int32 = new Int32() with get,set
        member val taxrate:Int32 = new Int32() with get,set

    [<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

    type Currency =
        | SEK = 1
        | EUR = 2

    [<AllowNullLiteral>]
    type ILogger<TCategoryName> = 
        interface end

    [<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# GroupedBookingQuery DTOs

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

HTTP + CSV

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

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

{"Offset":0,"Total":0,"Results":[{"Bookings":[{"Id":0,"Status":"Booked","StatusId":0,"StatusName":"String","StatusInfo":{"Id":0,"Name":"String","Description":"String","Icon":"String","Color":"String"},"SendEmailReminder":false,"SendSmsReminder":false,"SendSmsConfirmation":false,"SendEmailConfirmation":false,"LastTimeToUnBook":"0001-01-01T00:00:00","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"}],"BookedResourceTypes":[{"Id":0,"Name":"String","Resources":[{"Id":0,"Name":"String","Color":"String","Email":"String","MobilePhone":"String","AccessGroup":"String","EmailNotification":false,"SMSNotification":false,"EmailReminder":false,"SMSReminder":false}]}],"Company":{"Name":"String","Category":"String","Street1":"String","Street2":"String","ZipCode":"String","City":"String","CountryId":"String","Longitude":"String","Latitude":"String","Phone":"String","Email":"String","HomePage":"String","SitePath":"String","IsFavorite":false,"PaymentProviderId":0},"Customer":{"Firstname":"String","Lastname":"String","Email":"String","Phone":"String","FacebookUserName":"String","ImageUrl":"String","CorporateIdentityNumber":"String","InvoiceAddress1":"String","InvoiceAddress2":"String","InvoiceCity":"String","InvoicePostalCode":"String","InvoiceCountryCode":"String"},"Quantities":[{"Id":0,"Quantity":0,"Price":0,"PriceBeforeRebate":0,"CurrencyId":"String","PriceSign":"String","Category":"String","VAT":0,"PriceText":"String","OccupiesSpot":false}],"Service":{"Id":0,"Name":"String","Description":"String","LengthInMinutes":0,"MaxNumberOfSpotsPerBooking":0,"MinNumberOfSpotsPerBooking":0,"GroupBooking":{"Active":false,"Min":0,"Max":0},"MultipleResource":{"Active":false,"Min":0,"Max":0},"IsGroupBooking":false,"IsPaymentEnabled":false},"PaymentExpiration":"0001-01-01T00:00:00","Log":[{"Id":0,"BookingId":0,"EventTypeId":0,"EventType":{"Id":0,"Name":"String","Description":"String"},"Comments":"String","UserName":"String"}],"PaymentLog":[{"Id":0,"BookingId":0,"PaymentReferenceId":"String","OrderItemReferenceId":"String","PaymentProviderId":0,"Amount":0,"VAT":0,"AmountCredited":0,"CurrencyId":"String","CurrencyInfo":{"Id":"String","Name":"String","CurrencySign":"String"},"Comments":"String"}],"CheckoutLog":[{"BookingId":0,"PurchaseId":0,"ExpirationTime":"0001-01-01T00:00:00","Snippet":"String","Status":"String","Message":"String"}],"ExternalReference":[{"ReferenceType":"String","ExternalData":"String","CreatedBy":"String"}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"CalendarExportStatus":{"CalendarId":"String","BookingId":0,"Synced":false},"LengthInMinutes":0,"BookedBy":"String","BookedComments":"String","UnbookedComments":"String","CommentsToCustomer":"String","UnbookedOn":"0001-01-01T00:00:00","CancellationCode":"String","RatingCode":"String"}]}],"Meta":{"String":"String"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}