(* Options: Date: 2024-07-03 13:00:15 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //GlobalNamespace: //MakeDataContractsExtensible: False //AddReturnMarker: True //AddDescriptionAsComments: True //AddDataContractAttributes: False //AddIndexesToDataMembers: False //AddGeneratedCodeAttributes: False //AddResponseStatus: False //AddImplicitVersion: //ExportValueTypes: False IncludeTypes: CreateBookings.* //ExcludeTypes: //InitializeCollections: True //AddNamespaces: *) namespace BokaMera.API.ServiceModel.Dtos open System open System.Collections open System.Collections.Generic open System.Runtime.Serialization open ServiceStack open ServiceStack.DataAnnotations open System.Globalization open System.IO [] type AddCustomField() = member val Id:Int32 = new Int32() with get,set member val Value:String = null with get,set type PaymentOptions = | DefaultSetting = 0 | BookWithoutPayment = 1 | BookWithPaymentMessageToCustomer = 2 | BookWithManualPayment = 3 [] type DatesToRepeat() = /// ///Booking start /// [] member val From:DateTime = new DateTime() with get,set /// ///Booking end /// [] member val To:DateTime = new DateTime() with get,set /// ///Set the number of spots you want to book. You add number of spots per price category. Multiple spots require that the service has GroupBooking enabled. Default is one spot. /// [] member val Quantities:QuantityToBook[] = [||] with get,set [] type CustomerToBook() = /// ///Customers firstname /// [] member val Firstname:String = null with get,set /// ///Customers lastname /// [] member val Lastname:String = null with get,set /// ///Customers email /// [] member val Email:String = null with get,set /// ///Customers phone number. Mobile phone number is required for SMS messages to be sent. /// [] member val Phone:String = null with get,set [] type ResourceToBook() = member val ResourceTypeId:Int32 = new Int32() with get,set member val ResourceId:Int32 = new Int32() with get,set [] type CreateBookingBase() = /// ///The company id, if empty will use the company id for the user you are logged in with. /// [] member val CompanyId:Nullable = new Nullable() with get,set /// ///If you want to book on an existing customer instead of CustomerToBook info set the CustomerId here. Set Empty Guid (00000000-0000-0000-0000-000000000000) if you want to book without any customer, this is only allowed by admin. The customer id is shown in the customer list named as id. When booking as customer (no admin) leave this field blank. /// [] member val CustomerId:Nullable = new Nullable() with get,set /// ///If company requires to be authenticated or a pin code entered to book on a specific customer, enter it here. /// [] member val PinCode:String = null with get,set /// ///If you want to book with customer information instead of the Customer Id send the customer information here. Note: If customer profile already exists with the same email the information will not be changed, instead the provided information will be added as BookingsComments if it differs from the ordinairy profile. /// [] member val Customer:CustomerToBook = null with get,set /// ///The service to be booked /// [] member val ServiceId:Int32 = new Int32() with get,set /// ///If you want to add comments to a booking you can add them here, this comments are never shared with the customer /// [] member val BookedComments:String = null with get,set /// ///If you want to add comments to the booking that is sent to the customer, you can add them here. Comments will be sent in the booking confirmation /// [] member val CommentsToCustomer:String = null with get,set member val Resources:ResizeArray = new ResizeArray() with get,set /// ///Rebate code ids as an array of integer /// [] member val RebateCodeIds:ResizeArray = new ResizeArray() with get,set /// ///If you want to send Email reminder /// [] member val SendEmailReminder:Nullable = new Nullable() with get,set /// ///If you want to send SMS reminder /// [] member val SendSmsReminder:Nullable = new Nullable() with get,set /// ///If you want to send SMS confirmation /// [] member val SendSmsConfirmation:Nullable = new Nullable() with get,set /// ///Only admins are allowed to not send an email confirmation. Default is true /// [] member val SendEmailConfirmation:Nullable = new Nullable() with get,set /// ///If payment is enabled and you're an administrator, optional to choose payment option, if empty then the default settings will be used. Following payment options exists. DefaultSetting = 0, BookWithoutPayment = 1 (will be direcyly booked without payment), BookWithPaymentMessageToCustomer = 2 (will set status AwaitingPayment and send payment instructions to customer), BookWithManualPayment = 3 (Will set status AwaitingPaymentNoTimeLimit and Admin will need to manually mark the booking as payed when recieved payment). /// [] member val PaymentOption:PaymentOptions = new PaymentOptions() with get,set /// ///If Custom Fields are added to the booking, here you will send the id and the value for each custom field to be saved /// [] member val CustomFields:ResizeArray = new ResizeArray() with get,set /// ///If Custom Fields are added to the customer, here you will send the id and the value for each custom field to be updated /// [] member val CustomerCustomFields:ResizeArray = new ResizeArray() with get,set /// ///If want to allow to book outside the service schedules. This means you can book a time after the schedule opening hours as long as the resource are available. This is only allowed by administrators /// [] member val AllowBookingOutsideSchedules:Boolean = new Boolean() with get,set [] type IInterval = abstract From:DateTime with get,set abstract To:DateTime with get,set [] type FailedBookings() = member val From:DateTime = new DateTime() with get,set member val To:DateTime = new DateTime() with get,set member val Reason:String = null with get,set /// ///Set the number of spots you want to book. You add number of spots per price category. Multiple spots require that the service has GroupBooking enabled. Default is one spot. /// [] member val Quantities:QuantityToBook[] = [||] with get,set [] 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 = new Nullable() with get,set member val CustomFields:ResizeArray = new ResizeArray() with get,set member val CustomFieldValues:ResizeArray = new ResizeArray() with get,set member val BookedResourceTypes:ResizeArray = new ResizeArray() with get,set member val Company:BookedCompany = null with get,set member val Customer:BookedCustomer = null with get,set member val Quantities:ResizeArray = new ResizeArray() with get,set member val Service:ServiceInfoResponse = null with get,set member val PaymentExpiration:Nullable = new Nullable() with get,set member val Log:ResizeArray = new ResizeArray() with get,set member val PaymentLog:ResizeArray = new ResizeArray() with get,set member val CheckoutLog:ResizeArray = new ResizeArray() with get,set member val ExternalReference:ResizeArray = new ResizeArray() with get,set member val ResponseStatus:ResponseStatus = null with get,set member val CalendarExportStatus:BookingCalendarExportStatus = null with get,set member val LengthInMinutes:Nullable = new Nullable() 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 = new Nullable() with get,set member val CancellationCode:String = null with get,set member val RatingCode:String = null with get,set [] type CreateBookingsResponse() = /// ///The datetime you want to end the booking. /// [] member val Created:ResizeArray = new ResizeArray() with get,set /// ///The dates that didn't work to book. /// [] member val Failed:ResizeArray = new ResizeArray() with get,set member val ResponseStatus:ResponseStatus = null with get,set [] [] [] type CreateBookings() = inherit CreateBookingBase() interface IReturn /// ///Set the dates you want to book and it's quantities. It's an array of dates and quantities. /// [", Description="Set the dates you want to book and it's quantities. It's an array of dates and quantities.", IsRequired=true)>] member val DatesToRepeat:ResizeArray = new ResizeArray() with get,set