/* Options: Date: 2024-12-22 21:44:56 SwiftVersion: 6.0 Version: 8.51 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://blazor-gallery.servicestack.net //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: QueryBookings.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * Find Bookings */ // @Route("/bookings", "GET") // @Route("/bookings/{Id}", "GET") public class QueryBookings : QueryDb, IReturn { public typealias Return = QueryResponse public var id:Int? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case id } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) id = try container.decodeIfPresent(Int.self, forKey: .id) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if id != nil { try container.encode(id, forKey: .id) } } } /** * Booking Details */ public class Booking : AuditBase { public var id:Int? public var name:String? public var roomType:RoomType? public var roomNumber:Int? public var bookingStartDate:Date? public var bookingEndDate:Date? public var cost:Double? // @References(typeof(Coupon)) public var couponId:String? public var discount:Coupon? public var notes:String? public var cancelled:Bool? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case id case name case roomType case roomNumber case bookingStartDate case bookingEndDate case cost case couponId case discount case notes case cancelled } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) id = try container.decodeIfPresent(Int.self, forKey: .id) name = try container.decodeIfPresent(String.self, forKey: .name) roomType = try container.decodeIfPresent(RoomType.self, forKey: .roomType) roomNumber = try container.decodeIfPresent(Int.self, forKey: .roomNumber) bookingStartDate = try container.decodeIfPresent(Date.self, forKey: .bookingStartDate) bookingEndDate = try container.decodeIfPresent(Date.self, forKey: .bookingEndDate) cost = try container.decodeIfPresent(Double.self, forKey: .cost) couponId = try container.decodeIfPresent(String.self, forKey: .couponId) discount = try container.decodeIfPresent(Coupon.self, forKey: .discount) notes = try container.decodeIfPresent(String.self, forKey: .notes) cancelled = try container.decodeIfPresent(Bool.self, forKey: .cancelled) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if id != nil { try container.encode(id, forKey: .id) } if name != nil { try container.encode(name, forKey: .name) } if roomType != nil { try container.encode(roomType, forKey: .roomType) } if roomNumber != nil { try container.encode(roomNumber, forKey: .roomNumber) } if bookingStartDate != nil { try container.encode(bookingStartDate, forKey: .bookingStartDate) } if bookingEndDate != nil { try container.encode(bookingEndDate, forKey: .bookingEndDate) } if cost != nil { try container.encode(cost, forKey: .cost) } if couponId != nil { try container.encode(couponId, forKey: .couponId) } if discount != nil { try container.encode(discount, forKey: .discount) } if notes != nil { try container.encode(notes, forKey: .notes) } if cancelled != nil { try container.encode(cancelled, forKey: .cancelled) } } } /** * Discount Coupons */ public class Coupon : Codable { public var id:String? public var Description:String? public var discount:Int? public var expiryDate:Date? required public init(){} } public enum RoomType : String, Codable { case Single case Double case Queen case Twin case Suite }