/* Options: Date: 2024-06-26 11:58:18 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //GlobalNamespace: //MakePartial: True //MakeVirtual: True //MakeInternal: False //MakeDataContractsExtensible: False //AddNullableAnnotations: False //AddReturnMarker: True //AddDescriptionAsComments: True //AddDataContractAttributes: False //AddIndexesToDataMembers: False //AddGeneratedCodeAttributes: False //AddResponseStatus: False //AddImplicitVersion: //InitializeCollections: True //ExportValueTypes: False IncludeTypes: CreateBookings.* //ExcludeTypes: //AddNamespaces: //AddDefaultXmlNamespace: http://schemas.servicestack.net/types */ using System; using System.Collections; using System.Collections.Generic; using System.Runtime.Serialization; using ServiceStack; using ServiceStack.DataAnnotations; using System.Globalization; using System.IO; using BokaMera.API.ServiceModel.Dtos; using BokaMera.API.ServiceModel.Enums; using BokaMera.API.ServiceModel.Interfaces; namespace BokaMera.API.ServiceModel.Dtos { public partial class AddCustomField { public virtual int Id { get; set; } public virtual string Value { get; set; } } public partial class BookingQueryResponse { public BookingQueryResponse() { CustomFields = new List{}; CustomFieldValues = new List{}; BookedResourceTypes = new List{}; Quantities = new List{}; Log = new List{}; PaymentLog = new List{}; CheckoutLog = new List{}; ExternalReference = new List{}; } public virtual int Id { get; set; } public virtual Guid CompanyId { get; set; } public virtual DateTime From { get; set; } public virtual DateTime To { get; set; } public virtual BookingStatusEnum Status { get; set; } public virtual int StatusId { get; set; } public virtual string StatusName { get; set; } public virtual BookingStatusQueryResponse StatusInfo { get; set; } public virtual bool SendEmailReminder { get; set; } public virtual bool SendSmsReminder { get; set; } public virtual bool SendSmsConfirmation { get; set; } public virtual bool SendEmailConfirmation { get; set; } public virtual DateTime? LastTimeToUnBook { get; set; } public virtual List CustomFields { get; set; } public virtual List CustomFieldValues { get; set; } public virtual List BookedResourceTypes { get; set; } public virtual BookedCompany Company { get; set; } public virtual BookedCustomer Customer { get; set; } public virtual List Quantities { get; set; } public virtual ServiceInfoResponse Service { get; set; } public virtual DateTime? PaymentExpiration { get; set; } public virtual List Log { get; set; } public virtual List PaymentLog { get; set; } public virtual List CheckoutLog { get; set; } public virtual List ExternalReference { get; set; } public virtual ResponseStatus ResponseStatus { get; set; } public virtual BookingCalendarExportStatus CalendarExportStatus { get; set; } public virtual int? LengthInMinutes { get; set; } public virtual string BookedBy { get; set; } public virtual string BookedComments { get; set; } public virtual string UnbookedComments { get; set; } public virtual string CommentsToCustomer { get; set; } public virtual DateTime CreatedDate { get; set; } public virtual DateTime UpdatedDate { get; set; } public virtual DateTime? UnbookedOn { get; set; } public virtual string CancellationCode { get; set; } public virtual string RatingCode { get; set; } } public partial class CreateBookingBase { public CreateBookingBase() { Resources = new List{}; RebateCodeIds = new List{}; CustomFields = new List{}; CustomerCustomFields = new List{}; } /// ///The company id, if empty will use the company id for the user you are logged in with. /// [ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")] public virtual Guid? CompanyId { 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. /// [ApiMember(Description="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 virtual Guid? CustomerId { get; set; } /// ///If company requires to be authenticated or a pin code entered to book on a specific customer, enter it here. /// [ApiMember(Description="If company requires to be authenticated or a pin code entered to book on a specific customer, enter it here.")] public virtual string PinCode { 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. /// [ApiMember(Description="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 virtual CustomerToBook Customer { get; set; } /// ///The service to be booked /// [ApiMember(Description="The service to be booked", IsRequired=true)] public virtual int ServiceId { get; set; } /// ///If you want to add comments to a booking you can add them here, this comments are never shared with the customer /// [ApiMember(Description="If you want to add comments to a booking you can add them here, this comments are never shared with the customer")] public virtual string BookedComments { 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 /// [ApiMember(Description="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 virtual string CommentsToCustomer { get; set; } public virtual List Resources { get; set; } /// ///Rebate code ids as an array of integer /// [ApiMember(Description="Rebate code ids as an array of integer")] public virtual List RebateCodeIds { get; set; } /// ///If you want to send Email reminder /// [ApiMember(Description="If you want to send Email reminder")] public virtual bool? SendEmailReminder { get; set; } /// ///If you want to send SMS reminder /// [ApiMember(Description="If you want to send SMS reminder")] public virtual bool? SendSmsReminder { get; set; } /// ///If you want to send SMS confirmation /// [ApiMember(Description="If you want to send SMS confirmation")] public virtual bool? SendSmsConfirmation { get; set; } /// ///Only admins are allowed to not send an email confirmation. Default is true /// [ApiMember(Description="Only admins are allowed to not send an email confirmation. Default is true")] public virtual bool? SendEmailConfirmation { 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). /// [ApiMember(Description="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 virtual PaymentOptions PaymentOption { 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 /// [ApiMember(Description="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 virtual List CustomFields { 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 /// [ApiMember(Description="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 virtual List CustomerCustomFields { 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 /// [ApiMember(Description="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 virtual bool AllowBookingOutsideSchedules { get; set; } } [Route("/bookings/repeat", "POST")] [ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)] public partial class CreateBookings : CreateBookingBase, IReturn { public CreateBookings() { DatesToRepeat = new List{}; } /// ///Set the dates you want to book and it's quantities. It's an array of dates and quantities. /// [ApiMember(DataType="List", Description="Set the dates you want to book and it's quantities. It's an array of dates and quantities.", IsRequired=true)] public virtual List DatesToRepeat { get; set; } } public partial class CreateBookingsResponse { public CreateBookingsResponse() { Created = new List{}; Failed = new List{}; } /// ///The datetime you want to end the booking. /// [ApiMember(Description="The datetime you want to end the booking.", IsRequired=true)] public virtual List Created { get; set; } /// ///The dates that didn't work to book. /// [ApiMember(Description="The dates that didn't work to book.", IsRequired=true)] public virtual List Failed { get; set; } public virtual ResponseStatus ResponseStatus { get; set; } } public partial class CustomerToBook { /// ///Customers firstname /// [ApiMember(Description="Customers firstname", IsRequired=true)] public virtual string Firstname { get; set; } /// ///Customers lastname /// [ApiMember(Description="Customers lastname", IsRequired=true)] public virtual string Lastname { get; set; } /// ///Customers email /// [ApiMember(Description="Customers email", IsRequired=true)] public virtual string Email { get; set; } /// ///Customers phone number. Mobile phone number is required for SMS messages to be sent. /// [ApiMember(Description="Customers phone number. Mobile phone number is required for SMS messages to be sent.", IsRequired=true)] public virtual string Phone { get; set; } } public partial class DatesToRepeat : IInterval { public DatesToRepeat() { Quantities = new QuantityToBook[]{}; } /// ///Booking start /// [ApiMember(Description="Booking start")] public virtual DateTime From { get; set; } /// ///Booking end /// [ApiMember(Description="Booking end")] public virtual DateTime To { 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. /// [ApiMember(Description="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 virtual QuantityToBook[] Quantities { get; set; } } public partial class FailedBookings { public FailedBookings() { Quantities = new QuantityToBook[]{}; } public virtual DateTime From { get; set; } public virtual DateTime To { get; set; } public virtual string Reason { 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. /// [ApiMember(Description="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 virtual QuantityToBook[] Quantities { get; set; } } public partial class ResourceToBook { public virtual int ResourceTypeId { get; set; } public virtual int ResourceId { get; set; } } } namespace BokaMera.API.ServiceModel.Enums { public enum PaymentOptions { DefaultSetting, BookWithoutPayment, BookWithPaymentMessageToCustomer, BookWithManualPayment, } } namespace BokaMera.API.ServiceModel.Interfaces { public partial interface IInterval { DateTime From { get; set; } DateTime To { get; set; } } }