/* Options: Date: 2024-06-02 03:15:01 SwiftVersion: 5.0 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: CreateResourceTimeException.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/timeexceptions", "POST") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ApiResponse(Description="You have too low privilegies to call this service", StatusCode=403) // @ApiResponse(Description="Bookings exists that needs to be unbooked before creating this time exceptions, use the /timeexceptions/collidingevents to find which bookings and use the booking service to unbook them", StatusCode=409) // @ValidateRequest(Validator="IsAuthenticated") public class CreateResourceTimeException : IReturn, ICompany, Codable { public typealias Return = ResourceTimeExceptionQueryResponse /** * 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 var companyId:String? /** * Time exception starting datestamp, only the date of day part is used of this value */ // @ApiMember(Description="Time exception starting datestamp, only the date of day part is used of this value", IsRequired=true) public var from:Date /** * Time exception ending datestamp, only the date of day part is used of this value */ // @ApiMember(Description="Time exception ending datestamp, only the date of day part is used of this value", IsRequired=true) public var to:Date /** * Resource id of the resource that owns this exception */ // @ApiMember(Description="Resource id of the resource that owns this exception", IsRequired=true) public var resourceIds:[Int] = [] /** * This value indicates the time of day when the time exception begins. Example: 10:00. If Recurring this will be the startime for each recurring day. */ // @ApiMember(Description="This value indicates the time of day when the time exception begins. Example: 10:00. If Recurring this will be the startime for each recurring day.") @TimeSpan public var fromTime:TimeInterval /** * This value indicates the time of day when the time exception ends. Example: 12:00. If Recurring this will be the endtime for each recurring day. */ // @ApiMember(Description="This value indicates the time of day when the time exception ends. Example: 12:00. If Recurring this will be the endtime for each recurring day.") @TimeSpan public var toTime:TimeInterval /** * A comma separated list of which days this day exception belongs to, 1 = Monday .. 7 = Sunday */ // @ApiMember(Description="A comma separated list of which days this day exception belongs to, 1 = Monday .. 7 = Sunday") public var daysOfWeek:[Int] = [] /** * The reason of the time exception, example: Vacation, doctors appointment, ... */ // @ApiMember(Description="The reason of the time exception, example: Vacation, doctors appointment, ...", IsRequired=true) public var reasonText:String /** * The reason of the time exception that could be public to customers, example: Vacation, Closed, Sick leave, ... */ // @ApiMember(Description="The reason of the time exception that could be public to customers, example: Vacation, Closed, Sick leave, ...") public var reasonTextPublic:String /** * What hexadecimal color code the exception should have in the scheduler */ // @ApiMember(Description="What hexadecimal color code the exception should have in the scheduler") public var color:String /** * If the time exception should block the time in the scheduler so it's not avaialable to book */ // @ApiMember(Description="If the time exception should block the time in the scheduler so it's not avaialable to book") public var blockTime:Bool /** * If the ReasonText should only be visible to conncted resources. If false, all resources will be able to see it */ // @ApiMember(Description="If the ReasonText should only be visible to conncted resources. If false, all resources will be able to see it") public var `private`:Bool /** * By default sets to 1, which is to add time exception without canceling colliding bookings */ // @ApiMember(Description="By default sets to 1, which is to add time exception without canceling colliding bookings") public var collidingBookingOptions:CollidingBookingOptions /** * If this equals true it will it add the time exception with the option you have selected in CollidingBookingOption. Default is to cancel all colliding bookings. */ // @ApiMember(Description="If this equals true it will it add the time exception with the option you have selected in CollidingBookingOption. Default is to cancel all colliding bookings.") public var force:Bool /** * When Force=true and colliding bookings exsists, this message is the message that are sent to the users when canceling their bookings. */ // @ApiMember(Description="When Force=true and colliding bookings exsists, this message is the message that are sent to the users when canceling their bookings.") public var cancelMessage:String /** * When Force=true and colliding bookings exsists, send cancelmessage as SMS Confirmation */ // @ApiMember(Description="When Force=true and colliding bookings exsists, send cancelmessage as SMS Confirmation") public var sendSmsConfirmation:Bool? /** * When Force=true and colliding bookings exsists, send cancelmessage as Email Confirmation */ // @ApiMember(Description="When Force=true and colliding bookings exsists, send cancelmessage as Email Confirmation") public var sendEmailConfirmation:Bool? required public init(){} } public class ResourceTimeExceptionQueryResponse : Codable { /** * Time exception id */ // @ApiMember(Description="Time exception id") public var id:Int /** * Time company id */ // @ApiMember(Description="Time company id") public var companyId:String /** * If it's locked for editing for the logged in administrator */ // @ApiMember(Description="If it's locked for editing for the logged in administrator") public var locked:Bool /** * Resources that owns this exception */ // @ApiMember(Description="Resources that owns this exception") public var resourceIds:[Int] = [] /** * Resources that owns this exception */ // @ApiMember(Description="Resources that owns this exception") public var resources:[TimeExceptionReosurceDetails] = [] /** * Indicates wheter or not the time exception is recurring */ // @ApiMember(Description="Indicates wheter or not the time exception is recurring") public var isRecurring:Bool /** * Time exception starting timestamp */ // @ApiMember(Description="Time exception starting timestamp") public var from:Date /** * Time exception ending timestamp */ // @ApiMember(Description="Time exception ending timestamp") public var to:Date /** * If recurring then this value indicates the time of day when the time exception begins */ // @ApiMember(Description="If recurring then this value indicates the time of day when the time exception begins") @TimeSpan public var fromTime:TimeInterval /** * If recurring then this value indicates the time of day when the time exception ends */ // @ApiMember(Description="If recurring then this value indicates the time of day when the time exception ends") @TimeSpan public var toTime:TimeInterval /** * The reason of the time exception, example: Vacation, doctors appointment, ... */ // @ApiMember(Description="The reason of the time exception, example: Vacation, doctors appointment, ...") public var reasonText:String /** * The reason of the time exception that could be public to customers, example: Vacation, Closed, Sick leave, ... */ // @ApiMember(Description="The reason of the time exception that could be public to customers, example: Vacation, Closed, Sick leave, ...") public var reasonTextPublic:String /** * What hexadecimal color code the exception should have in the scheduler */ // @ApiMember(Description="What hexadecimal color code the exception should have in the scheduler") public var color:String /** * If the time exception should block the time in the scheduler so it's not avaialable to book */ // @ApiMember(Description="If the time exception should block the time in the scheduler so it's not avaialable to book") public var blockTime:Bool /** * If the ReasonText should only be visible to conncted resources. If false, all resources will be able to see it */ // @ApiMember(Description="If the ReasonText should only be visible to conncted resources. If false, all resources will be able to see it") public var `private`:Bool /** * The status for export to calendars like Gcal */ // @ApiMember(Description="The status for export to calendars like Gcal") public var calendarExportStatus:ExceptionCalendarExportStatus /** * 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") public var daysOfWeek:[DayOfWeekDto] = [] /** * The datetime the exception was created */ // @ApiMember(Description="The datetime the exception was created") public var created:Date public var responseStatus:ResponseStatus required public init(){} } public protocol ICompany { var companyId:String? { get set } } public enum CollidingBookingOptions : Int, Codable { case AddWithoutCancelingCollidingBookings = 1 case AddAndCancelCollidingBookings = 2 } public class TimeExceptionReosurceDetails : Codable { /** * Ids of the resources that owns this exception */ // @ApiMember(Description="Ids of the resources that owns this exception") public var id:Int /** * Name of the resource */ // @ApiMember(Description="Name of the resource") public var name:String /** * Description of the resource */ // @ApiMember(Description="Description of the resource") public var Description:String /** * Color of the resource */ // @ApiMember(Description="Color of the resource") public var color:String /** * Image of the resource */ // @ApiMember(Description="Image of the resource") public var imageUrl:Uri public var responseStatus:ResponseStatus required public init(){} } public class ExceptionCalendarExportStatus : Codable { public var calendarId:String public var exceptionId:Int public var synced:Bool? required public init(){} } public class DayOfWeekDto : Codable { public var dayOfWeekId:Int public var dotNetDayOfWeekId:Int public var dayOfWeek:String required public init(){} }