/* Options:
Date: 2025-04-15 06:56:55
SwiftVersion: 5.0
Version: 8.23
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://api.bokamera.se

//BaseClass: 
//AddModelExtensions: True
//AddServiceStackTypes: True
IncludeTypes: DeleteOldReservations.*
//ExcludeTypes: 
//ExcludeGenericBaseTypes: False
//AddResponseStatus: False
//AddImplicitVersion: 
//AddDescriptionAsComments: True
//InitializeCollections: True
//TreatTypesAsStrings: 
//DefaultImports: Foundation,ServiceStack
*/

import Foundation
import ServiceStack

// @Route("/codelock/{CodeLockSystemsId}/reservations/", "POST")
// @ValidateRequest(Validator="IsAuthenticated")
public class DeleteOldReservations : IReturn, Codable
{
    public typealias Return = DeleteOldReservationsResponse

    /**
    * 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?

    /**
    * The date to delete To. Only bookings that have ended by this date will be deleted.
    */
    // @ApiMember(DataType="datetime", Description="The date to delete To. Only bookings that have ended by this date will be deleted.")
    public var to:Date

    /**
    * The system type of the code lock
    */
    // @ApiMember(DataType="int", Description="The system type of the code lock", ParameterType="path")
    public var codeLockSystemsId:Int

    /**
    * If not logged in you can use token to update
    */
    // @ApiMember(Description="If not logged in you can use token to update")
    public var token:String

    required public init(){}
}

public class DeleteOldReservationsResponse : Codable
{
    public var companyId:String
    public var id:Int
    public var from:Date
    public var to:Date
    public var status:BookingStatusEnum
    public var statusId:Int
    public var responseStatus:ResponseStatus
    public var createdDate:Date
    public var updatedDate:Date

    required public init(){}
}

public enum BookingStatusEnum : Int, Codable
{
    case Booked = 1
    case Unbooked = 2
    case Reserved = 3
    case Canceled = 4
    case AwaitingPayment = 5
    case AwaitingPaymentNoTimeLimit = 6
    case Payed = 7
    case AwaitingPaymentRequestFromAdmin = 8
    case AwaitingPaymentFromProvider = 9
    case Invoiced = 10
}