/* Options: Date: 2024-06-26 09:31:16 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: RecuringScheduleQuery.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.*,com.google.gson.annotations.*,com.google.gson.reflect.* */ import java.math.* import java.util.* 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") 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") 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") 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") 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") 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") 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") 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") 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") 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) var Offset:Int? = null @DataMember(Order=2) var Total:Int? = null @DataMember(Order=3) var Results:ArrayList = ArrayList() @DataMember(Order=4) var Meta:HashMap = HashMap() @DataMember(Order=5) 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), } open interface IInterval { var From:Date? var To:Date? } open class CustomFieldConfig : BaseModel() { @Ignore() var Values:ArrayList = ArrayList() var CustomField:CustomField? = null @Ignore() var RegEx:RegEx? = null @Ignore() var Services:ArrayList = ArrayList() var CustomFieldServiceRelation:ArrayList = ArrayList() @Required() var CompanyId:UUID? = null var Id:Int? = null var GroupId:Int? = null @Required() var FieldId:Int? = null @Required() var IconId:Int? = null var RegExId:Int? = null @Required() var Name:String? = null @Required() var Description:String? = null @Required() var Datatype:String? = null @Required() var MaxLength:Int? = null @Required() var IsPublic:Boolean? = null @Required() var IsHidden:Boolean? = null @Required() var IsMandatory:Boolean? = null var DefaultValue:String? = null var RegExErrorMessage:String? = null var MandatoryErrorMessage:String? = null var Width:Int? = null @Required() var MultipleLineText:Boolean? = null var ModifiedDate:Date? = null } open class Resource : BaseModel(), ICustomFieldTable, IBaseModelCreated, IBaseModelUpdated { @Ignore() var Priority:Int? = null @Ignore() var Schedules:IList? = null @Ignore() var Exceptions:IList? = null @Ignore() var Bookings:IList? = null @Ignore() var CustomFieldsConfig:IList? = null @Ignore() var CustomFieldsData:IList? = null @Required() var CompanyId:UUID? = null var Id:Int? = null @Required() var Name:String? = null @Required() var Active:Boolean? = null var Description:String? = null var ImageUrl:String? = null @Required() var UpdatedDate:Date? = null @Required() var CreatedDate:Date? = null @Required() var Color:String? = null var Email:String? = null var MobilePhone:String? = null var EmailNotification:Boolean? = null var SMSNotification:Boolean? = null @Required() var SendSMSReminder:Boolean? = null @Required() var SendEmailReminder:Boolean? = null var ModifiedDate:Date? = null var AccessGroup:String? = null var TextField1:String? = null var TextField2:String? = null var TextField3:String? = null var TextField4:String? = null var TextField5:String? = null var TextField6:String? = null var TextField7:String? = null var TextField8:String? = null var TextField9:String? = null var TextField10:String? = null var TextField11:String? = null var TextField12:String? = null var TextField13:String? = null var TextField14:String? = null var TextField15:String? = null var TextField16:String? = null var TextField17:String? = null var TextField18:String? = null var TextField19:String? = null var TextField20:String? = null } open class RecurringSchedule : BaseModel(), ISchedule, IBaseModelCreated, IBaseModelUpdated { @Ignore() var Type:ScheduleType? = null @Ignore() var Dates:IList? = null @Ignore() var Resources:IList? = null @Ignore() var Services:IList? = null var RecurringScheduleResourceRelation:ArrayList = ArrayList() var RecurringScheduleDates:ArrayList = ArrayList() var RecurringScheduleDayOfWeekRelation:ArrayList = ArrayList() var ServiceRecurringScheduleRelation:ArrayList = ArrayList() var RecurringScheduleExceptions:ArrayList = ArrayList() @Ignore() var Exceptions:IList? = null @Ignore() var IsRecurringByDayOfWeek:Boolean? = null @Ignore() var IsRecurringByDates:Boolean? = null @Ignore() var IsResourceSpecific:Boolean? = null @Required() var CompanyId:UUID? = null var Id:Int? = null @Required() var Name:String? = null @Required() var Description:String? = null @Required() var TimeInterval:Int? = null @Required() var StartTime:TimeSpan? = null @Required() var EndTime:TimeSpan? = null @Required() var NumberOfScheduleDays:Int? = null @Required() var UpdatedDate:Date? = null @Required() var CreatedDate:Date? = null @Required() var EnableBookingUntilClosingTime:Boolean? = null @Required() var ValidFrom:Date? = null @Required() var ValidTo:Date? = null var ModifiedDate:Date? = null @Required() var Active:Boolean? = null } open class CustomFieldDataResponse { var Id:Int? = null var Column:String? = null var Name:String? = null var Description:String? = null 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'") var DataType:String? = null } open class BookedCustomer { var Id:UUID? = null var Firstname:String? = null var Lastname:String? = null var Email:String? = null var Phone:String? = null var FacebookUserName:String? = null var ImageUrl:String? = null var CorporateIdentityNumber:String? = null var InvoiceAddress1:String? = null var InvoiceAddress2:String? = null var InvoiceCity:String? = null var InvoicePostalCode:String? = null var InvoiceCountryCode:String? = null } open class DayOfWeekDto { var DayOfWeekId:Int? = null var DotNetDayOfWeekId:Int? = null var DayOfWeek:String? = null } open class ScheduleResources { var Id:Int? = null /** * Name of the resource */ @ApiMember(Description="Name of the resource") var Name:String? = null /** * The image url of the resource */ @ApiMember(Description="The image url of the resource") var ImageUrl:Uri? = null } open class ScheduleServices { var Id:Int? = null /** * Name of the service */ @ApiMember(Description="Name of the service") var Name:String? = null /** * The image url of the service */ @ApiMember(Description="The image url of the service") var ImageUrl:Uri? = null } open class RecurringScheduleExceptionResponse { /** * Start time of the schedule exception. */ @ApiMember(Description="Start time of the schedule exception.") var StartTime:TimeSpan? = null /** * End time of the schedule exception. */ @ApiMember(Description="End time of the schedule exception.") var EndTime:TimeSpan? = null } open class RecurringScheduleDateResponse { var Id:Int? = null var Date:Date? = null var StartTime:TimeSpan? = null var EndTime:TimeSpan? = null 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) 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) 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) 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) 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) var Include:String? = null @DataMember(Order=6) var Fields:String? = null @DataMember(Order=7) var Meta:HashMap = HashMap() } open class BaseModel { } open 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 interface IBaseModelUpdated { var UpdatedDate:Date? } open interface IBaseModelCreated { var CreatedDate:Date? } open class CustomFieldValue : BaseModel() { @Required() var CompanyId:UUID? = null var Id:Int? = null @Required() var Value:String? = null @Required() var Active:Boolean? = null var SortOrder:Short? = null var ModifiedDate:Date? = null } open class CustomField : BaseModel() { @Required() var Table:String? = null @Required() var Column:String? = null @Required() var DataType:String? = null @Required() var Description:String? = null @Required() var Active:Boolean? = null var ModifiedDate:Date? = null var Id:Int? = null } open class RegEx : BaseModel() { @Required() var Name:String? = null @Required() var Description:String? = null @Required() var RegExCode:String? = null var ErrorMessage:String? = null var ModifiedDate:Date? = null var Id:Int? = null } open class CustomFieldServiceRelation : BaseModel() { @Required() var CompanyId:UUID? = null var Id:Int? = null @Required() var CustomFieldConfigId:Int? = null @Required() var ServiceId:Int? = null var ModifiedDate:Date? = null } open interface ISchedule { var Resources:IList? var Type:ScheduleType? var Active:Boolean? var IsResourceSpecific:Boolean? } open interface ITimeException : IInterval { var Id:Int? var ReasonText:String? var IsBlock:Boolean? var ReasonTextPublic:String? var IsRecurring:Boolean? var ResourceIds:ArrayList? } open 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() var From:Date? = null @Ignore() var To:Date? = null @Required() var CompanyId:UUID? = null var Id:Int? = null @Required() var RecurringScheduleId:Int? = null @Required() var Date:Date? = null @Required() var StartTime:TimeSpan? = null @Required() var EndTime:TimeSpan? = null var ModifiedDate:Date? = null } open class RecurringScheduleResourceRelation : BaseModel() { @Required() var CompanyId:UUID? = null @Required() var RecurringScheduleId:Int? = null @Required() var ResourceId:Int? = null var Id:Int? = null var ModifiedDate:Date? = null } open class RecurringScheduleDayOfWeekRelation : BaseModel() { @Ignore() var DayOfWeek:BokaMeraDayOfWeek? = null @Required() var DayOfWeekId:Int? = null @Required() var CompanyId:UUID? = null @Required() var RecurringScheduleId:Int? = null var Id:Int? = null var ModifiedDate:Date? = null } open class ServiceRecurringScheduleRelation : BaseModel() { @Required() var CompanyId:UUID? = null @Required() var ServiceId:Int? = null @Required() var RecurringScheduleId:Int? = null var Id:Int? = null var ModifiedDate:Date? = null } open class RecurringScheduleException : BaseModel(), IScheduleException { @Required() var CompanyId:UUID? = null @Required() var RecurringScheduleId:Int? = null var Id:Int? = null var ModifiedDate:Date? = null @Required() var StartTime:TimeSpan? = null @Required() var EndTime:TimeSpan? = null } open 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") var Id:Int? = null /** * Name of the schedule */ @ApiMember(Description="Name of the schedule") var Name:String? = null /** * Description of the schedule */ @ApiMember(Description="Description of the schedule") var Description:String? = null /** * If the schedule is active or not */ @ApiMember(Description="If the schedule is active or not") 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-10PM 09:15AM-10:15PM, 09:30AM-10:30PM , ..... 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-10PM 09:15AM-10:15PM, 09:30AM-10:30PM , ..... 04:45PM-05:45, 05:00PM-06:00PM", IsRequired=true) 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) 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) var ValidTo:Date? = null /** * The time for the schedule opening hours (starttime) */ @ApiMember(Description="The time for the schedule opening hours (starttime)", IsRequired=true) var StartTime:TimeSpan? = null /** * The time for the schedule opening hours (endtime) */ @ApiMember(Description="The time for the schedule opening hours (endtime)", IsRequired=true) 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) 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) var IsResourceSpecific:Boolean? = null /** * The timestamp when the schedule was updated */ @ApiMember(Description="The timestamp when the schedule was updated", IsRequired=true) var UpdatedDate:Date? = null /** * The timestamp when the schedule was created */ @ApiMember(Description="The timestamp when the schedule was created", IsRequired=true) 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) 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") var DaysOfWeek:ArrayList = ArrayList() /** * The resources that is connected to the schedule */ @ApiMember(Description="The resources that is connected to the schedule") var Resources:ArrayList = ArrayList() /** * The services that is connected to the schedule */ @ApiMember(Description="The services that is connected to the schedule") var Services:ArrayList = ArrayList() /** * The exceptions that is added to the schedule */ @ApiMember(Description="The exceptions that is added to the schedule") var Exceptions:ArrayList = ArrayList() /** * 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") var ScheduleDates:ArrayList = ArrayList() var ResponseStatus:ResponseStatus? = null }