/* Options: Date: 2025-09-15 04:14:37 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: RecuringScheduleQuery.* //ExcludeTypes: //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.*,com.google.gson.annotations.*,com.google.gson.reflect.* */ import java.math.* import java.util.* import java.io.InputStream import net.servicestack.client.* import com.google.gson.annotations.* import com.google.gson.reflect.* @Route(Path="/schedules/recurring", Verbs="GET") @ValidateRequest(Validator="IsAuthenticated") open class RecuringScheduleQuery : QueryDb(), IReturn> { /** * Enter the company you want to see news for, if blank and you are an admin, your company id will be used */ @ApiMember(Description="Enter the company you want to see news for, if blank and you are an admin, your company id will be used", ParameterType="path") open var CompanyId:UUID? = null /** * Enter the From Date you want to see news from, only allowed if admin */ @ApiMember(DataType="dateTime", Description="Enter the From Date you want to see news from, only allowed if admin", ParameterType="query") open var ValidFrom:Date? = null /** * Enter the To Date you want to see news to, only allowed if admin */ @ApiMember(DataType="dateTime", Description="Enter the To Date you want to see news to, only allowed if admin", ParameterType="query") open var ValidTo:Date? = null /** * If you want to include the connected days for the schedule */ @ApiMember(DataType="bool", Description="If you want to include the connected days for the schedule", ParameterType="query") open var IncludeRecurringDays:Boolean? = null /** * If you want to include the connected resources for the schedule */ @ApiMember(DataType="bool", Description="If you want to include the connected resources for the schedule", ParameterType="query") open var IncludeConnectedResources:Boolean? = null /** * If you want to include the connected services for the schedule */ @ApiMember(DataType="bool", Description="If you want to include the connected services for the schedule", ParameterType="query") open var IncludeConnectedServices:Boolean? = null /** * If you want to include the exceptions for the schedule */ @ApiMember(DataType="bool", Description="If you want to include the exceptions for the schedule", ParameterType="query") open var IncludeExceptions:Boolean? = null /** * Use this parameter if you want to only show active news */ @ApiMember(DataType="boolean", Description="Use this parameter if you want to only show active news") open var Active:Boolean? = null /** * If you want to include the connected dates for the schedule. This is used when the schedule having setting, different opening hours per week (not rolling schedule using days of week). */ @ApiMember(DataType="bool", Description="If you want to include the connected dates for the schedule. This is used when the schedule having setting, different opening hours per week (not rolling schedule using days of week).", ParameterType="query") open var IncludeScheduleDates:Boolean? = null companion object { private val responseType = object : TypeToken>(){}.type } override fun getResponseType(): Any? = RecuringScheduleQuery.responseType } @DataContract open class QueryResponse { @DataMember(Order=1) open var Offset:Int? = null @DataMember(Order=2) open var Total:Int? = null @DataMember(Order=3) open var Results:ArrayList? = null @DataMember(Order=4) open var Meta:HashMap? = null @DataMember(Order=5) open var ResponseStatus:ResponseStatus? = null } open class QueryDb : QueryBase() { } enum class BookingStatusEnum(val value:Int) { Booked(1), Unbooked(2), Reserved(3), Canceled(4), AwaitingPayment(5), AwaitingPaymentNoTimeLimit(6), Payed(7), AwaitingPaymentRequestFromAdmin(8), AwaitingPaymentFromProvider(9), Invoiced(10), } interface IInterval { var From:Date? var To:Date? } open class CustomFieldConfig : BaseModel() { @Ignore() open var Values:ArrayList? = null open var CustomField:CustomField? = null @Ignore() open var RegEx:RegEx? = null @Ignore() open var Services:ArrayList? = null open var CustomFieldServiceRelation:ArrayList? = null @Required() open var CompanyId:UUID? = null open var Id:Int? = null open var GroupId:Int? = null @Required() open var FieldId:Int? = null @Required() open var IconId:Int? = null open var RegExId:Int? = null @Required() open var Name:String? = null @Required() open var Description:String? = null @Required() open var Datatype:String? = null @Required() open var MaxLength:Int? = null @Required() open var IsPublic:Boolean? = null @Required() open var IsHidden:Boolean? = null @Required() open var IsMandatory:Boolean? = null open var DefaultValue:String? = null open var RegExErrorMessage:String? = null open var MandatoryErrorMessage:String? = null open var Width:Int? = null @Required() open var MultipleLineText:Boolean? = null open var ModifiedDate:Date? = null } open class Resource : BaseModel(), ICustomFieldTable, IBaseModelCreated, IBaseModelUpdated { @Ignore() open var Priority:Int? = null @Ignore() open var Schedules:IList? = null @Ignore() open var Exceptions:IList? = null @Ignore() open var Bookings:IList? = null @Ignore() override var CustomFieldsConfig:IList? = null @Ignore() override var CustomFieldsData:IList? = null @Required() open var CompanyId:UUID? = null open var Id:Int? = null @Required() open var Name:String? = null @Required() open var Active:Boolean? = null open var Description:String? = null open var ImageUrl:String? = null @Required() override var UpdatedDate:Date? = null @Required() override var CreatedDate:Date? = null @Required() open var Color:String? = null open var Email:String? = null open var MobilePhone:String? = null open var EmailNotification:Boolean? = null open var SMSNotification:Boolean? = null @Required() open var SendSMSReminder:Boolean? = null @Required() open var SendEmailReminder:Boolean? = null open var ModifiedDate:Date? = null open var AccessGroup:String? = null override var TextField1:String? = null override var TextField2:String? = null override var TextField3:String? = null override var TextField4:String? = null override var TextField5:String? = null override var TextField6:String? = null override var TextField7:String? = null override var TextField8:String? = null override var TextField9:String? = null override var TextField10:String? = null override var TextField11:String? = null override var TextField12:String? = null override var TextField13:String? = null override var TextField14:String? = null override var TextField15:String? = null override var TextField16:String? = null override var TextField17:String? = null override var TextField18:String? = null override var TextField19:String? = null override var TextField20:String? = null } open class RecurringSchedule : BaseModel(), ISchedule, IBaseModelCreated, IBaseModelUpdated { @Ignore() override var Type:ScheduleType? = null @Ignore() open var Dates:IList? = null @Ignore() override var Resources:IList? = null @Ignore() open var Services:IList? = null open var RecurringScheduleResourceRelation:ArrayList? = null open var RecurringScheduleDates:ArrayList? = null open var RecurringScheduleDayOfWeekRelation:ArrayList? = null open var ServiceRecurringScheduleRelation:ArrayList? = null open var RecurringScheduleExceptions:ArrayList? = null @Ignore() open var Exceptions:IList? = null @Ignore() open var IsRecurringByDayOfWeek:Boolean? = null @Ignore() open var IsRecurringByDates:Boolean? = null @Ignore() override var IsResourceSpecific:Boolean? = null @Required() override var CompanyId:UUID? = null open var Id:Int? = null @Required() open var Name:String? = null @Required() open var Description:String? = null @Required() open var TimeInterval:Int? = null @Required() open var StartTime:TimeSpan? = null @Required() open var EndTime:TimeSpan? = null @Required() open var NumberOfScheduleDays:Int? = null @Required() override var UpdatedDate:Date? = null @Required() override var CreatedDate:Date? = null @Required() open var EnableBookingUntilClosingTime:Boolean? = null @Required() open var ValidFrom:Date? = null @Required() open var ValidTo:Date? = null open var ModifiedDate:Date? = null @Required() override var Active:Boolean? = null } open class CustomFieldDataResponse { open var Id:Int? = null open var Column:String? = null open var Name:String? = null open var Description:String? = null open var Value:String? = null /** * Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox' */ @ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'") open var DataType:String? = null } open class BookedCustomer { open var Id:UUID? = null open var Firstname:String? = null open var Lastname:String? = null open var Email:String? = null open var Phone:String? = null open var FacebookUserName:String? = null open var ImageUrl:String? = null open var CorporateIdentityNumber:String? = null open var InvoiceAddress1:String? = null open var InvoiceAddress2:String? = null open var InvoiceCity:String? = null open var InvoicePostalCode:String? = null open var InvoiceCountryCode:String? = null } open class DayOfWeekDto { open var DayOfWeekId:Int? = null open var DotNetDayOfWeekId:Int? = null open var DayOfWeek:String? = null } open class ScheduleResources { open var Id:Int? = null /** * Name of the resource */ @ApiMember(Description="Name of the resource") open var Name:String? = null /** * The image url of the resource */ @ApiMember(Description="The image url of the resource") open var ImageUrl:Uri? = null } open class ScheduleServices { open var Id:Int? = null /** * Name of the service */ @ApiMember(Description="Name of the service") open var Name:String? = null /** * The image url of the service */ @ApiMember(Description="The image url of the service") open var ImageUrl:Uri? = null } open class RecurringScheduleExceptionResponse { /** * Start time of the schedule exception. */ @ApiMember(Description="Start time of the schedule exception.") open var StartTime:TimeSpan? = null /** * End time of the schedule exception. */ @ApiMember(Description="End time of the schedule exception.") open var EndTime:TimeSpan? = null } open class RecurringScheduleDateResponse { open var Id:Int? = null open var Date:Date? = null open var StartTime:TimeSpan? = null open var EndTime:TimeSpan? = null open var ResponseStatus:ResponseStatus? = null } enum class ScheduleType { NotDefined, RecurringSchedule, DateSchedule, } @DataContract open class QueryBase { /** * Skip over a given number of elements in a sequence and then return the remainder. Use this when you need paging.

Example:
?skip=10&orderBy=Id */ @DataMember(Order=1) open var Skip:Int? = null /** * Return a given number of elements in a sequence and then skip over the remainder. Use this when you need paging.

Example:
?take=20 */ @DataMember(Order=2) open var Take:Int? = null /** * 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.

Example:
?orderBy=Id,-Age,FirstName */ @DataMember(Order=3) open var OrderBy:String? = null /** * 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.

Example:
?orderByDesc=Id,-Age,FirstName */ @DataMember(Order=4) open var OrderByDesc:String? = null /** * Include any of the aggregates AVG, COUNT, FIRST, LAST, MAX, MIN, SUM in your result set. The results will be returned in the meta field.

Example:
?include=COUNT(*) as Total

or multiple fields with
?include=Count(*) Total, Min(Age), AVG(Age) AverageAge

or unique with
?include=COUNT(DISTINCT LivingStatus) as UniqueStatus */ @DataMember(Order=5) open var Include:String? = null @DataMember(Order=6) open var Fields:String? = null @DataMember(Order=7) open var Meta:HashMap? = null } open class BaseModel { } interface IBaseModelCreated { var CreatedDate:Date? } interface IBaseModelUpdated { var UpdatedDate:Date? } interface ICustomFieldTable { var CustomFieldsConfig:IList? var CustomFieldsData:IList? var TextField1:String? var TextField2:String? var TextField3:String? var TextField4:String? var TextField5:String? var TextField6:String? var TextField7:String? var TextField8:String? var TextField9:String? var TextField10:String? var TextField11:String? var TextField12:String? var TextField13:String? var TextField14:String? var TextField15:String? var TextField16:String? var TextField17:String? var TextField18:String? var TextField19:String? var TextField20:String? } open class CustomFieldValue : BaseModel() { @Required() open var CompanyId:UUID? = null open var Id:Int? = null @Required() open var Value:String? = null @Required() open var Active:Boolean? = null open var SortOrder:Short? = null open var ModifiedDate:Date? = null } open class CustomField : BaseModel() { @Required() open var Table:String? = null @Required() open var Column:String? = null @Required() open var DataType:String? = null @Required() open var Description:String? = null @Required() open var Active:Boolean? = null open var ModifiedDate:Date? = null open var Id:Int? = null } open class RegEx : BaseModel() { @Required() open var Name:String? = null @Required() open var Description:String? = null @Required() open var RegExCode:String? = null open var ErrorMessage:String? = null open var ModifiedDate:Date? = null open var Id:Int? = null } open class CustomFieldServiceRelation : BaseModel() { @Required() open var CompanyId:UUID? = null open var Id:Int? = null @Required() open var CustomFieldConfigId:Int? = null @Required() open var ServiceId:Int? = null open var ModifiedDate:Date? = null } interface ISchedule { var CompanyId:UUID? var Resources:IList? var Type:ScheduleType? var Active:Boolean? var IsResourceSpecific:Boolean? } interface ITimeException : IInterval { var Id:Int? var ReasonText:String? var IsBlock:Boolean? var ReasonTextPublic:String? var IsRecurring:Boolean? var ResourceIds:ArrayList? } interface IBookedTime : IInterval { var Id:Int? var ServiceId:Int? var BookedSpots:Int? var TotalSpots:Int? var PauseAfterInMinutes:Int? var Status:BookingStatusEnum? var StatusId:Int? var Customer:BookedCustomer? } open class RecurringScheduleDate : BaseModel(), IInterval { @Ignore() override var From:Date? = null @Ignore() override var To:Date? = null @Required() open var CompanyId:UUID? = null open var Id:Int? = null @Required() open var RecurringScheduleId:Int? = null @Required() open var Date:Date? = null @Required() open var StartTime:TimeSpan? = null @Required() open var EndTime:TimeSpan? = null open var ModifiedDate:Date? = null } open class RecurringScheduleResourceRelation : BaseModel() { @Required() open var CompanyId:UUID? = null @Required() open var RecurringScheduleId:Int? = null @Required() open var ResourceId:Int? = null open var Id:Int? = null open var ModifiedDate:Date? = null } open class RecurringScheduleDayOfWeekRelation : BaseModel() { @Ignore() open var DayOfWeek:BokaMeraDayOfWeek? = null @Required() open var DayOfWeekId:Int? = null @Required() open var CompanyId:UUID? = null @Required() open var RecurringScheduleId:Int? = null open var Id:Int? = null open var ModifiedDate:Date? = null } open class ServiceRecurringScheduleRelation : BaseModel() { @Required() open var CompanyId:UUID? = null @Required() open var ServiceId:Int? = null @Required() open var RecurringScheduleId:Int? = null open var Id:Int? = null open var ModifiedDate:Date? = null } open class RecurringScheduleException : BaseModel(), IScheduleException { @Required() open var CompanyId:UUID? = null @Required() open var RecurringScheduleId:Int? = null open var Id:Int? = null open var ModifiedDate:Date? = null @Required() override var StartTime:TimeSpan? = null @Required() override var EndTime:TimeSpan? = null } interface IScheduleException { var StartTime:TimeSpan? var EndTime:TimeSpan? } enum class BokaMeraDayOfWeek(val value:Int) { Monday(1), Tuesday(2), Wednesday(3), Thursday(4), Friday(5), Saturday(6), Sunday(7), } open class RecurringScheduleQueryResponse { /** * The schedule id */ @ApiMember(Description="The schedule id") open var Id:Int? = null /** * Name of the schedule */ @ApiMember(Description="Name of the schedule") open var Name:String? = null /** * Description of the schedule */ @ApiMember(Description="Description of the schedule") open var Description:String? = null /** * If the schedule is active or not */ @ApiMember(Description="If the schedule is active or not") open var Active:Boolean? = null /** * Time interval for available times Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10AM 09:15AM-10:15AM, 09:30AM-10:30AM , ..... 04:45PM-05:45, 05:00PM-06:00PM */ @ApiMember(Description="Time interval for available times Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10AM 09:15AM-10:15AM, 09:30AM-10:30AM , ..... 04:45PM-05:45, 05:00PM-06:00PM", IsRequired=true) open var TimeInterval:Int? = null /** * The timestamp to which the schedule is valid from */ @ApiMember(Description="The timestamp to which the schedule is valid from", IsRequired=true) open var ValidFrom:Date? = null /** * The timestamp to which the schedule is valid to */ @ApiMember(Description="The timestamp to which the schedule is valid to", IsRequired=true) open var ValidTo:Date? = null /** * The time for the schedule opening hours (starttime) */ @ApiMember(Description="The time for the schedule opening hours (starttime)", IsRequired=true) open var StartTime:TimeSpan? = null /** * The time for the schedule opening hours (endtime) */ @ApiMember(Description="The time for the schedule opening hours (endtime)", IsRequired=true) open var EndTime:TimeSpan? = null /** * The number of days the schedule is valid from todays date */ @ApiMember(Description="The number of days the schedule is valid from todays date", IsRequired=true) open var NumberOfScheduleDays:Int? = null /** * If the schedule is only connected to some specific resources. Note: You must have IncludeResources property to see this. */ @ApiMember(Description="If the schedule is only connected to some specific resources. Note: You must have IncludeResources property to see this.", IsRequired=true) open var IsResourceSpecific:Boolean? = null /** * The timestamp when the schedule was updated */ @ApiMember(Description="The timestamp when the schedule was updated", IsRequired=true) open var UpdatedDate:Date? = null /** * The timestamp when the schedule was created */ @ApiMember(Description="The timestamp when the schedule was created", IsRequired=true) open var CreatedDate:Date? = null /** * Allow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight). */ @ApiMember(Description="Allow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight).", IsRequired=true) open var EnableBookingUntilClosingTime:Boolean? = null /** * If recurring, an array indicating which days of the week the exception recures on where 1 = Monday .. 7 = Sunday. When recurring then the time portion of the Fields From and To indicates the time of day the recurrence occurs */ @ApiMember(Description="If recurring, an array indicating which days of the week the exception recures on where 1 = Monday .. 7 = Sunday. When recurring then the time portion of the Fields From and To indicates the time of day the recurrence occurs") open var DaysOfWeek:ArrayList? = null /** * The resources that is connected to the schedule */ @ApiMember(Description="The resources that is connected to the schedule") open var Resources:ArrayList? = null /** * The services that is connected to the schedule */ @ApiMember(Description="The services that is connected to the schedule") open var Services:ArrayList? = null /** * The exceptions that is added to the schedule */ @ApiMember(Description="The exceptions that is added to the schedule") open var Exceptions:ArrayList? = null /** * Schedule dates, used when the schedule is not a rolling schedule using days of week */ @ApiMember(Description="Schedule dates, used when the schedule is not a rolling schedule using days of week") open var ScheduleDates:ArrayList? = null open var ResponseStatus:ResponseStatus? = null }