/* Options: Date: 2024-11-21 11:58:08 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //Package: //GlobalNamespace: dtos //AddPropertyAccessors: True //SettersReturnThis: True //AddServiceStackTypes: True //AddResponseStatus: False //AddDescriptionAsComments: True //AddImplicitVersion: IncludeTypes: CreateBookings.* //ExcludeTypes: //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.* */ import java.math.*; import java.util.*; import net.servicestack.client.*; public class dtos { @Route(Path="/bookings/repeat", Verbs="POST") @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) public static class CreateBookings extends CreateBookingBase implements IReturn { /** * 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 ArrayList DatesToRepeat = null; public ArrayList getDatesToRepeat() { return DatesToRepeat; } public CreateBookings setDatesToRepeat(ArrayList value) { this.DatesToRepeat = value; return this; } private static Object responseType = CreateBookingsResponse.class; public Object getResponseType() { return responseType; } } public static class CreateBookingsResponse { /** * The datetime you want to end the booking. */ @ApiMember(Description="The datetime you want to end the booking.", IsRequired=true) public ArrayList Created = null; /** * The dates that didn't work to book. */ @ApiMember(Description="The dates that didn't work to book.", IsRequired=true) public ArrayList Failed = null; public ResponseStatus ResponseStatus = null; public ArrayList getCreated() { return Created; } public CreateBookingsResponse setCreated(ArrayList value) { this.Created = value; return this; } public ArrayList getFailed() { return Failed; } public CreateBookingsResponse setFailed(ArrayList value) { this.Failed = value; return this; } public ResponseStatus getResponseStatus() { return ResponseStatus; } public CreateBookingsResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; } } public static class AddCustomField { public Integer Id = null; public String Value = null; public Integer getId() { return Id; } public AddCustomField setId(Integer value) { this.Id = value; return this; } public String getValue() { return Value; } public AddCustomField setValue(String value) { this.Value = value; return this; } } public static enum PaymentOptions { DefaultSetting, BookWithoutPayment, BookWithPaymentMessageToCustomer, BookWithManualPayment; } public static class DatesToRepeat implements IInterval { /** * Booking start */ @ApiMember(Description="Booking start") public Date From = null; /** * Booking end */ @ApiMember(Description="Booking end") public Date To = null; /** * 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 ArrayList Quantities = null; public Date getFrom() { return From; } public DatesToRepeat setFrom(Date value) { this.From = value; return this; } public Date getTo() { return To; } public DatesToRepeat setTo(Date value) { this.To = value; return this; } public ArrayList getQuantities() { return Quantities; } public DatesToRepeat setQuantities(ArrayList value) { this.Quantities = value; return this; } } public static class CustomerToHandle { public UUID CustomerId = null; public String Firstname = null; public String Lastname = null; public String Email = null; public String Phone = null; public Boolean SubscribedToNewsletter = null; public UUID getCustomerId() { return CustomerId; } public CustomerToHandle setCustomerId(UUID value) { this.CustomerId = value; return this; } public String getFirstname() { return Firstname; } public CustomerToHandle setFirstname(String value) { this.Firstname = value; return this; } public String getLastname() { return Lastname; } public CustomerToHandle setLastname(String value) { this.Lastname = value; return this; } public String getEmail() { return Email; } public CustomerToHandle setEmail(String value) { this.Email = value; return this; } public String getPhone() { return Phone; } public CustomerToHandle setPhone(String value) { this.Phone = value; return this; } public Boolean isSubscribedToNewsletter() { return SubscribedToNewsletter; } public CustomerToHandle setSubscribedToNewsletter(Boolean value) { this.SubscribedToNewsletter = value; return this; } } public static class ResourceToBook { public Integer ResourceTypeId = null; public Integer ResourceId = null; public Integer getResourceTypeId() { return ResourceTypeId; } public ResourceToBook setResourceTypeId(Integer value) { this.ResourceTypeId = value; return this; } public Integer getResourceId() { return ResourceId; } public ResourceToBook setResourceId(Integer value) { this.ResourceId = value; return this; } } public static class CreateBookingBase { /** * 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 UUID CompanyId = null; /** * 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 UUID CustomerId = null; /** * 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 String PinCode = null; /** * 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 CustomerToHandle Customer = null; /** * The service to be booked */ @ApiMember(Description="The service to be booked", IsRequired=true) public Integer ServiceId = null; /** * 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 String BookedComments = null; /** * 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 String CommentsToCustomer = null; public ArrayList Resources = null; /** * Rebate codes applied to booking */ @ApiMember(Description="Rebate codes applied to booking") public ArrayList RebateCodeIds = null; /** * If you want to send Email reminder */ @ApiMember(Description="If you want to send Email reminder") public Boolean SendEmailReminder = null; /** * If you want to send SMS reminder */ @ApiMember(Description="If you want to send SMS reminder") public Boolean SendSmsReminder = null; /** * If you want to send SMS confirmation */ @ApiMember(Description="If you want to send SMS confirmation") public Boolean SendSmsConfirmation = null; /** * 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 Boolean SendEmailConfirmation = null; /** * 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 PaymentOptions PaymentOption = null; /** * 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 ArrayList CustomFields = null; /** * 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 ArrayList CustomerCustomFields = null; /** * 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 Boolean AllowBookingOutsideSchedules = null; public UUID getCompanyId() { return CompanyId; } public CreateBookingBase setCompanyId(UUID value) { this.CompanyId = value; return this; } public UUID getCustomerId() { return CustomerId; } public CreateBookingBase setCustomerId(UUID value) { this.CustomerId = value; return this; } public String getPinCode() { return PinCode; } public CreateBookingBase setPinCode(String value) { this.PinCode = value; return this; } public CustomerToHandle getCustomer() { return Customer; } public CreateBookingBase setCustomer(CustomerToHandle value) { this.Customer = value; return this; } public Integer getServiceId() { return ServiceId; } public CreateBookingBase setServiceId(Integer value) { this.ServiceId = value; return this; } public String getBookedComments() { return BookedComments; } public CreateBookingBase setBookedComments(String value) { this.BookedComments = value; return this; } public String getCommentsToCustomer() { return CommentsToCustomer; } public CreateBookingBase setCommentsToCustomer(String value) { this.CommentsToCustomer = value; return this; } public ArrayList getResources() { return Resources; } public CreateBookingBase setResources(ArrayList value) { this.Resources = value; return this; } public ArrayList getRebateCodeIds() { return RebateCodeIds; } public CreateBookingBase setRebateCodeIds(ArrayList value) { this.RebateCodeIds = value; return this; } public Boolean isSendEmailReminder() { return SendEmailReminder; } public CreateBookingBase setSendEmailReminder(Boolean value) { this.SendEmailReminder = value; return this; } public Boolean isSendSmsReminder() { return SendSmsReminder; } public CreateBookingBase setSendSmsReminder(Boolean value) { this.SendSmsReminder = value; return this; } public Boolean isSendSmsConfirmation() { return SendSmsConfirmation; } public CreateBookingBase setSendSmsConfirmation(Boolean value) { this.SendSmsConfirmation = value; return this; } public Boolean isSendEmailConfirmation() { return SendEmailConfirmation; } public CreateBookingBase setSendEmailConfirmation(Boolean value) { this.SendEmailConfirmation = value; return this; } public PaymentOptions getPaymentOption() { return PaymentOption; } public CreateBookingBase setPaymentOption(PaymentOptions value) { this.PaymentOption = value; return this; } public ArrayList getCustomFields() { return CustomFields; } public CreateBookingBase setCustomFields(ArrayList value) { this.CustomFields = value; return this; } public ArrayList getCustomerCustomFields() { return CustomerCustomFields; } public CreateBookingBase setCustomerCustomFields(ArrayList value) { this.CustomerCustomFields = value; return this; } public Boolean isAllowBookingOutsideSchedules() { return AllowBookingOutsideSchedules; } public CreateBookingBase setAllowBookingOutsideSchedules(Boolean value) { this.AllowBookingOutsideSchedules = value; return this; } } public static interface IInterval { public Date From = null; public Date To = null; } public static class FailedBookings { public Date From = null; public Date To = null; public String Reason = null; /** * 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 ArrayList Quantities = null; public Date getFrom() { return From; } public FailedBookings setFrom(Date value) { this.From = value; return this; } public Date getTo() { return To; } public FailedBookings setTo(Date value) { this.To = value; return this; } public String getReason() { return Reason; } public FailedBookings setReason(String value) { this.Reason = value; return this; } public ArrayList getQuantities() { return Quantities; } public FailedBookings setQuantities(ArrayList value) { this.Quantities = value; return this; } } public static class BookingQueryResponse { public Integer Id = null; public UUID CompanyId = null; public Date From = null; public Date To = null; public BookingStatusEnum Status = null; public Integer StatusId = null; public String StatusName = null; public BookingStatusQueryResponse StatusInfo = null; public Boolean SendEmailReminder = null; public Boolean SendSmsReminder = null; public Boolean SendSmsConfirmation = null; public Boolean SendEmailConfirmation = null; public Date LastTimeToUnBook = null; public ArrayList CustomFields = null; public ArrayList CustomFieldValues = null; public ArrayList BookedResourceTypes = null; public BookedCompany Company = null; public BookedCustomer Customer = null; public ArrayList Quantities = null; public ServiceInfoResponse Service = null; public Date PaymentExpiration = null; public ArrayList Log = null; public ArrayList PaymentLog = null; public ArrayList CheckoutLog = null; public ArrayList ExternalReference = null; public ResponseStatus ResponseStatus = null; public BookingCalendarExportStatus CalendarExportStatus = null; public Integer LengthInMinutes = null; public String BookedBy = null; public String BookedComments = null; public String UnbookedComments = null; public String CommentsToCustomer = null; public Date CreatedDate = null; public Date UpdatedDate = null; public Date UnbookedOn = null; public String CancellationCode = null; public String RatingCode = null; public Integer getId() { return Id; } public BookingQueryResponse setId(Integer value) { this.Id = value; return this; } public UUID getCompanyId() { return CompanyId; } public BookingQueryResponse setCompanyId(UUID value) { this.CompanyId = value; return this; } public Date getFrom() { return From; } public BookingQueryResponse setFrom(Date value) { this.From = value; return this; } public Date getTo() { return To; } public BookingQueryResponse setTo(Date value) { this.To = value; return this; } public BookingStatusEnum getStatus() { return Status; } public BookingQueryResponse setStatus(BookingStatusEnum value) { this.Status = value; return this; } public Integer getStatusId() { return StatusId; } public BookingQueryResponse setStatusId(Integer value) { this.StatusId = value; return this; } public String getStatusName() { return StatusName; } public BookingQueryResponse setStatusName(String value) { this.StatusName = value; return this; } public BookingStatusQueryResponse getStatusInfo() { return StatusInfo; } public BookingQueryResponse setStatusInfo(BookingStatusQueryResponse value) { this.StatusInfo = value; return this; } public Boolean isSendEmailReminder() { return SendEmailReminder; } public BookingQueryResponse setSendEmailReminder(Boolean value) { this.SendEmailReminder = value; return this; } public Boolean isSendSmsReminder() { return SendSmsReminder; } public BookingQueryResponse setSendSmsReminder(Boolean value) { this.SendSmsReminder = value; return this; } public Boolean isSendSmsConfirmation() { return SendSmsConfirmation; } public BookingQueryResponse setSendSmsConfirmation(Boolean value) { this.SendSmsConfirmation = value; return this; } public Boolean isSendEmailConfirmation() { return SendEmailConfirmation; } public BookingQueryResponse setSendEmailConfirmation(Boolean value) { this.SendEmailConfirmation = value; return this; } public Date getLastTimeToUnBook() { return LastTimeToUnBook; } public BookingQueryResponse setLastTimeToUnBook(Date value) { this.LastTimeToUnBook = value; return this; } public ArrayList getCustomFields() { return CustomFields; } public BookingQueryResponse setCustomFields(ArrayList value) { this.CustomFields = value; return this; } public ArrayList getCustomFieldValues() { return CustomFieldValues; } public BookingQueryResponse setCustomFieldValues(ArrayList value) { this.CustomFieldValues = value; return this; } public ArrayList getBookedResourceTypes() { return BookedResourceTypes; } public BookingQueryResponse setBookedResourceTypes(ArrayList value) { this.BookedResourceTypes = value; return this; } public BookedCompany getCompany() { return Company; } public BookingQueryResponse setCompany(BookedCompany value) { this.Company = value; return this; } public BookedCustomer getCustomer() { return Customer; } public BookingQueryResponse setCustomer(BookedCustomer value) { this.Customer = value; return this; } public ArrayList getQuantities() { return Quantities; } public BookingQueryResponse setQuantities(ArrayList value) { this.Quantities = value; return this; } public ServiceInfoResponse getService() { return Service; } public BookingQueryResponse setService(ServiceInfoResponse value) { this.Service = value; return this; } public Date getPaymentExpiration() { return PaymentExpiration; } public BookingQueryResponse setPaymentExpiration(Date value) { this.PaymentExpiration = value; return this; } public ArrayList getLog() { return Log; } public BookingQueryResponse setLog(ArrayList value) { this.Log = value; return this; } public ArrayList getPaymentLog() { return PaymentLog; } public BookingQueryResponse setPaymentLog(ArrayList value) { this.PaymentLog = value; return this; } public ArrayList getCheckoutLog() { return CheckoutLog; } public BookingQueryResponse setCheckoutLog(ArrayList value) { this.CheckoutLog = value; return this; } public ArrayList getExternalReference() { return ExternalReference; } public BookingQueryResponse setExternalReference(ArrayList value) { this.ExternalReference = value; return this; } public ResponseStatus getResponseStatus() { return ResponseStatus; } public BookingQueryResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; } public BookingCalendarExportStatus getCalendarExportStatus() { return CalendarExportStatus; } public BookingQueryResponse setCalendarExportStatus(BookingCalendarExportStatus value) { this.CalendarExportStatus = value; return this; } public Integer getLengthInMinutes() { return LengthInMinutes; } public BookingQueryResponse setLengthInMinutes(Integer value) { this.LengthInMinutes = value; return this; } public String getBookedBy() { return BookedBy; } public BookingQueryResponse setBookedBy(String value) { this.BookedBy = value; return this; } public String getBookedComments() { return BookedComments; } public BookingQueryResponse setBookedComments(String value) { this.BookedComments = value; return this; } public String getUnbookedComments() { return UnbookedComments; } public BookingQueryResponse setUnbookedComments(String value) { this.UnbookedComments = value; return this; } public String getCommentsToCustomer() { return CommentsToCustomer; } public BookingQueryResponse setCommentsToCustomer(String value) { this.CommentsToCustomer = value; return this; } public Date getCreatedDate() { return CreatedDate; } public BookingQueryResponse setCreatedDate(Date value) { this.CreatedDate = value; return this; } public Date getUpdatedDate() { return UpdatedDate; } public BookingQueryResponse setUpdatedDate(Date value) { this.UpdatedDate = value; return this; } public Date getUnbookedOn() { return UnbookedOn; } public BookingQueryResponse setUnbookedOn(Date value) { this.UnbookedOn = value; return this; } public String getCancellationCode() { return CancellationCode; } public BookingQueryResponse setCancellationCode(String value) { this.CancellationCode = value; return this; } public String getRatingCode() { return RatingCode; } public BookingQueryResponse setRatingCode(String value) { this.RatingCode = value; return this; } } }