' Options: 'Date: 2024-07-03 12:55:08 'Version: 8.23 'Tip: To override a DTO option, remove "''" prefix before updating 'BaseUrl: https://api.bokamera.se ' '''GlobalNamespace: '''MakePartial: True '''MakeVirtual: True '''MakeDataContractsExtensible: False '''AddReturnMarker: True '''AddDescriptionAsComments: True '''AddDataContractAttributes: False '''AddIndexesToDataMembers: False '''AddGeneratedCodeAttributes: False '''AddResponseStatus: False '''AddImplicitVersion: '''InitializeCollections: True '''ExportValueTypes: False 'IncludeTypes: CreateBooking.* '''ExcludeTypes: '''AddNamespaces: '''AddDefaultXmlNamespace: http://schemas.servicestack.net/types Imports System Imports System.Collections Imports System.Collections.Generic Imports System.Runtime.Serialization Imports ServiceStack Imports ServiceStack.DataAnnotations Imports System.Globalization Imports System.IO Imports BokaMera.API.ServiceModel.Dtos Imports BokaMera.API.ServiceModel.Enums Imports BokaMera.API.ServiceModel.Interfaces Namespace Global Namespace BokaMera.API.ServiceModel.Dtos Public Partial Class AddCustomField Public Overridable Property Id As Integer Public Overridable Property Value As String End Class Public Partial Class BookedCompany Public Overridable Property Id As Guid Public Overridable Property Name As String Public Overridable Property LogoType As Uri Public Overridable Property Category As String Public Overridable Property Street1 As String Public Overridable Property Street2 As String Public Overridable Property ZipCode As String Public Overridable Property City As String Public Overridable Property CountryId As String Public Overridable Property Longitude As String Public Overridable Property Latitude As String Public Overridable Property Phone As String Public Overridable Property Email As String Public Overridable Property HomePage As String Public Overridable Property SitePath As String Public Overridable Property IsFavorite As Boolean Public Overridable Property PaymentProviderId As Nullable(Of Integer) End Class Public Partial Class BookedCustomer Public Overridable Property Id As Guid Public Overridable Property Firstname As String Public Overridable Property Lastname As String Public Overridable Property Email As String Public Overridable Property Phone As String Public Overridable Property FacebookUserName As String Public Overridable Property ImageUrl As String Public Overridable Property CorporateIdentityNumber As String Public Overridable Property InvoiceAddress1 As String Public Overridable Property InvoiceAddress2 As String Public Overridable Property InvoiceCity As String Public Overridable Property InvoicePostalCode As String Public Overridable Property InvoiceCountryCode As String End Class Public Partial Class BookedQuantity ''' '''The quantity Id ''' Public Overridable Property Id As Integer ''' '''The quantity for booked on this price category ''' Public Overridable Property Quantity As Integer ''' '''The price ''' Public Overridable Property Price As Nullable(Of Double) ''' '''The price bofore rebate codes ''' Public Overridable Property PriceBeforeRebate As Nullable(Of Double) ''' '''The price currency ''' Public Overridable Property CurrencyId As String ''' '''The price sign ''' Public Overridable Property PriceSign As String ''' '''The price category ''' Public Overridable Property Category As String ''' '''The price VAT in percent ''' Public Overridable Property VAT As Nullable(Of Decimal) ''' '''The price text to display ''' Public Overridable Property PriceText As String ''' '''If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information. ''' Public Overridable Property OccupiesSpot As Boolean End Class Public Partial Class BookedResource Public Overridable Property Id As Integer Public Overridable Property Name As String Public Overridable Property Color As String Public Overridable Property ImageUrl As Uri Public Overridable Property Email As String Public Overridable Property MobilePhone As String Public Overridable Property AccessGroup As String Public Overridable Property EmailNotification As Boolean Public Overridable Property SMSNotification As Boolean Public Overridable Property EmailReminder As Boolean Public Overridable Property SMSReminder As Boolean End Class Public Partial Class BookedResourceType Public Sub New() Resources = New List(Of BookedResource) End Sub ''' '''The resource type id ''' Public Overridable Property Id As Integer ''' '''The resource type name ''' Public Overridable Property Name As String ''' '''The resources inside resource type ''' Public Overridable Property Resources As List(Of BookedResource) End Class Public Partial Class BookingCalendarExportStatus Public Overridable Property CalendarId As String Public Overridable Property BookingId As Integer Public Overridable Property Synced As Nullable(Of Boolean) End Class Public Partial Class BookingCheckoutQueryResponse ''' '''The checkout id ''' Public Overridable Property Id As Guid ''' '''The booking id ''' Public Overridable Property BookingId As Integer ''' '''The purchase id ''' Public Overridable Property PurchaseId As Nullable(Of Integer) ''' '''The payment checkout expiration datetime ''' Public Overridable Property ExpirationTime As Nullable(Of Date) ''' '''The payment snippet code ''' Public Overridable Property Snippet As String ''' '''The payment status ''' Public Overridable Property Status As String ''' '''Log message ''' Public Overridable Property Message As String ''' '''When the checkout log item was created ''' Public Overridable Property Created As Date ''' '''When the checkout log item was updated ''' Public Overridable Property Updated As Date End Class Public Partial Class BookingLogQueryResponse ''' '''The booking log id ''' Public Overridable Property Id As Integer ''' '''The booking id ''' Public Overridable Property BookingId As Integer ''' '''The type of event ''' Public Overridable Property EventTypeId As Integer ''' '''The type of event ''' Public Overridable Property EventType As BookingLogEventTypeResponse ''' '''Comments that could be added to the event log item ''' Public Overridable Property Comments As String ''' '''The user created the event ''' Public Overridable Property UserName As String ''' '''Then date when the event occured ''' Public Overridable Property Created As Date End Class Public Partial Class BookingPaymentLogQueryResponse ''' '''The booking payment log id ''' Public Overridable Property Id As Integer ''' '''The booking id ''' Public Overridable Property BookingId As Integer ''' '''The payment reference id ''' Public Overridable Property PaymentReferenceId As String ''' '''The payment order item reference id ''' Public Overridable Property OrderItemReferenceId As String ''' '''The payment reference id ''' Public Overridable Property PaymentProviderId As Nullable(Of Integer) ''' '''The payment amount ''' Public Overridable Property Amount As Double ''' '''The payment VAT in percent ''' Public Overridable Property VAT As Decimal ''' '''The payment amount that is credited ''' Public Overridable Property AmountCredited As Double ''' '''The payment currency id ''' Public Overridable Property CurrencyId As String ''' '''The payment currency info ''' Public Overridable Property CurrencyInfo As CurrencyInfoResponse ''' '''Comments that could be added to the event log item ''' Public Overridable Property Comments As String ''' '''The date when the payment items was created ''' Public Overridable Property Created As Date ''' '''The date when the payment items was update ''' Public Overridable Property Updated As Date End Class Public Partial Class BookingQueryResponse Public Sub New() CustomFields = New List(Of CustomFieldConfigData) CustomFieldValues = New List(Of CustomFieldDataResponse) BookedResourceTypes = New List(Of BookedResourceType) Quantities = New List(Of BookedQuantity) Log = New List(Of BookingLogQueryResponse) PaymentLog = New List(Of BookingPaymentLogQueryResponse) CheckoutLog = New List(Of BookingCheckoutQueryResponse) ExternalReference = New List(Of ExternalReferenceResponse) End Sub Public Overridable Property Id As Integer Public Overridable Property CompanyId As Guid Public Overridable Property From As Date Public Overridable Property To As Date Public Overridable Property Status As BookingStatusEnum Public Overridable Property StatusId As Integer Public Overridable Property StatusName As String Public Overridable Property StatusInfo As BookingStatusQueryResponse Public Overridable Property SendEmailReminder As Boolean Public Overridable Property SendSmsReminder As Boolean Public Overridable Property SendSmsConfirmation As Boolean Public Overridable Property SendEmailConfirmation As Boolean Public Overridable Property LastTimeToUnBook As Nullable(Of Date) Public Overridable Property CustomFields As List(Of CustomFieldConfigData) Public Overridable Property CustomFieldValues As List(Of CustomFieldDataResponse) Public Overridable Property BookedResourceTypes As List(Of BookedResourceType) Public Overridable Property Company As BookedCompany Public Overridable Property Customer As BookedCustomer Public Overridable Property Quantities As List(Of BookedQuantity) Public Overridable Property Service As ServiceInfoResponse Public Overridable Property PaymentExpiration As Nullable(Of Date) Public Overridable Property Log As List(Of BookingLogQueryResponse) Public Overridable Property PaymentLog As List(Of BookingPaymentLogQueryResponse) Public Overridable Property CheckoutLog As List(Of BookingCheckoutQueryResponse) Public Overridable Property ExternalReference As List(Of ExternalReferenceResponse) Public Overridable Property ResponseStatus As ResponseStatus Public Overridable Property CalendarExportStatus As BookingCalendarExportStatus Public Overridable Property LengthInMinutes As Nullable(Of Integer) Public Overridable Property BookedBy As String Public Overridable Property BookedComments As String Public Overridable Property UnbookedComments As String Public Overridable Property CommentsToCustomer As String Public Overridable Property CreatedDate As Date Public Overridable Property UpdatedDate As Date Public Overridable Property UnbookedOn As Nullable(Of Date) Public Overridable Property CancellationCode As String Public Overridable Property RatingCode As String End Class Public Partial Class BookingStatusQueryResponse Public Overridable Property Id As Integer Public Overridable Property Name As String Public Overridable Property Description As String Public Overridable Property Icon As String Public Overridable Property Color As String End Class Public Partial Class CreateBooking Inherits CreateBookingBase Implements IReturn(Of BookingQueryResponse) Implements IInterval Public Sub New() Quantities = New QuantityToBook(){} End Sub ''' '''The datetime you want to start the booking. ''' Public Overridable Property From As Date ''' '''The datetime you want to end the booking. ''' Public Overridable Property To As Date ''' '''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. ''' Public Overridable Property Quantities As QuantityToBook() End Class Public Partial Class CreateBookingBase Public Sub New() Resources = New List(Of ResourceToBook) RebateCodeIds = New List(Of Integer) CustomFields = New List(Of AddCustomField) CustomerCustomFields = New List(Of AddCustomField) End Sub ''' '''The company id, if empty will use the company id for the user you are logged in with. ''' Public Overridable Property CompanyId As Nullable(Of Guid) ''' '''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. ''' Public Overridable Property CustomerId As Nullable(Of Guid) ''' '''If company requires to be authenticated or a pin code entered to book on a specific customer, enter it here. ''' Public Overridable Property PinCode As String ''' '''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. ''' Public Overridable Property Customer As CustomerToBook ''' '''The service to be booked ''' Public Overridable Property ServiceId As Integer ''' '''If you want to add comments to a booking you can add them here, this comments are never shared with the customer ''' Public Overridable Property BookedComments As String ''' '''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 ''' Public Overridable Property CommentsToCustomer As String Public Overridable Property Resources As List(Of ResourceToBook) ''' '''Rebate code ids as an array of integer ''' Public Overridable Property RebateCodeIds As List(Of Integer) ''' '''If you want to send Email reminder ''' Public Overridable Property SendEmailReminder As Nullable(Of Boolean) ''' '''If you want to send SMS reminder ''' Public Overridable Property SendSmsReminder As Nullable(Of Boolean) ''' '''If you want to send SMS confirmation ''' Public Overridable Property SendSmsConfirmation As Nullable(Of Boolean) ''' '''Only admins are allowed to not send an email confirmation. Default is true ''' Public Overridable Property SendEmailConfirmation As Nullable(Of Boolean) ''' '''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). ''' Public Overridable Property PaymentOption As PaymentOptions ''' '''If Custom Fields are added to the booking, here you will send the id and the value for each custom field to be saved ''' Public Overridable Property CustomFields As List(Of AddCustomField) ''' '''If Custom Fields are added to the customer, here you will send the id and the value for each custom field to be updated ''' Public Overridable Property CustomerCustomFields As List(Of AddCustomField) ''' '''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 ''' Public Overridable Property AllowBookingOutsideSchedules As Boolean End Class Public Partial Class CurrencyInfoResponse ''' '''The currency id ''' Public Overridable Property Id As String ''' '''The currency id ''' Public Overridable Property Name As String ''' '''The currency id ''' Public Overridable Property CurrencySign As String End Class Public Partial Class CustomerToBook ''' '''Customers firstname ''' Public Overridable Property Firstname As String ''' '''Customers lastname ''' Public Overridable Property Lastname As String ''' '''Customers email ''' Public Overridable Property Email As String ''' '''Customers phone number. Mobile phone number is required for SMS messages to be sent. ''' Public Overridable Property Phone As String End Class Public Partial Class CustomFieldConfigData Public Sub New() Values = New List(Of CustomFieldValueResponse) End Sub ''' '''Custom field id ''' Public Overridable Property Id As Integer ''' '''Configuration name. Example: 'Number of persons'. ''' Public Overridable Property Name As String ''' '''Custom field description. Example: 'For how many persons is this booking?' ''' Public Overridable Property Description As String ''' '''Field width. Example: 20 for 20px ''' Public Overridable Property Width As Nullable(Of Integer) ''' '''Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox' ''' Public Overridable Property DataType As String ''' '''Default value of the field. Example: '3' ''' Public Overridable Property DefaultValue As String ''' '''Determines if the field is required to have a value or not ''' Public Overridable Property IsMandatory As Boolean ''' '''Error message shown to the user if the field data is required but not entered ''' Public Overridable Property MandatoryErrorMessage As String ''' '''Max lenght of the field ''' Public Overridable Property MaxLength As Integer ''' '''If the field should have multiple lines ''' Public Overridable Property MultipleLineText As Boolean ''' '''Regular expression used for validation of the field ''' Public Overridable Property RegEx As String ''' '''Error message shown if the regular expression validation failed ''' Public Overridable Property RegExErrorMessage As String ''' '''The values to select from if Datatype is DropDown for this custom field ''' Public Overridable Property Values As List(Of CustomFieldValueResponse) End Class Public Partial Class CustomFieldDataResponse Public Overridable Property Id As Integer Public Overridable Property Column As String Public Overridable Property Name As String Public Overridable Property Description As String Public Overridable Property Value As String ''' '''Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox' ''' Public Overridable Property DataType As String End Class Public Partial Class CustomFieldValueResponse Public Overridable Property Value As String End Class Public Partial Class ExternalReferenceResponse Public Overridable Property CompanyId As Guid Public Overridable Property Id As Guid Public Overridable Property OwnerId As Guid Public Overridable Property ReferenceType As String Public Overridable Property ExternalData As String Public Overridable Property CreatedBy As String Public Overridable Property Updated As Date Public Overridable Property Created As Date End Class Public Partial Class GroupBookingSettings Public Overridable Property Active As Boolean Public Overridable Property Min As Integer Public Overridable Property Max As Integer End Class Public Partial Class MultipleResourceSettings Public Overridable Property Active As Boolean Public Overridable Property Min As Integer Public Overridable Property Max As Integer End Class Public Partial Class ResourceToBook Public Overridable Property ResourceTypeId As Integer Public Overridable Property ResourceId As Integer End Class Public Partial Class ServiceInfoResponse Public Overridable Property Id As Integer Public Overridable Property Name As String Public Overridable Property Description As String Public Overridable Property ImageUrl As Uri Public Overridable Property LengthInMinutes As Nullable(Of Integer) Public Overridable Property MaxNumberOfSpotsPerBooking As Integer Public Overridable Property GroupBooking As GroupBookingSettings Public Overridable Property MultipleResource As MultipleResourceSettings Public Overridable Property IsGroupBooking As Boolean Public Overridable Property IsPaymentEnabled As Boolean End Class End Namespace Namespace BokaMera.API.ServiceModel.Enums Public Enum BookingStatusEnum Booked = 1 Unbooked = 2 Reserved = 3 Canceled = 4 AwaitingPayment = 5 AwaitingPaymentNoTimeLimit = 6 Payed = 7 AwaitingPaymentRequestFromAdmin = 8 AwaitingPaymentFromProvider = 9 Invoiced = 10 End Enum Public Enum PaymentOptions DefaultSetting BookWithoutPayment BookWithPaymentMessageToCustomer BookWithManualPayment End Enum End Namespace Namespace BokaMera.API.ServiceModel.Interfaces Public Interface IInterval Property From As Date Property To As Date End Interface End Namespace End Namespace