/* Options: Date: 2026-01-12 02:50:16 SwiftVersion: 6.0 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://qa-business-api.brovs.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: GetAdRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/ad/get", "GET") public class GetAdRequest : IReturn, IGet, IHasAdId, Codable { public typealias Return = GetAdResponse // @Validate(Validator="NotEqual(0)") public var adId:Int? required public init(){} } public class GetAdResponse : Codable { public var ad:BusinessAdDto? required public init(){} } public protocol IHasAdId { var adId:Int? { get set } } public class AdDetailsUnion : Codable { public var percentageOnAllMerchandise:AdDetailsPercentageDiscountOnAllMerchandise? public var percentageRangeOnAllMerchandise:AdDetailsPercentageDiscountRangeOnAllMerchandise? public var percentageOnSelectedMerchandise:AdDetailsPercentageDiscountOnSelectedMerchandise? public var absoluteOnSelectedMerchandise:AdDetailsAbsoluteDiscountOnSelectedMerchandise? public var absoluteRangeOnAllMerchandise:AdDetailsAbsoluteDiscountRangeOnAllMerchandise? public var totalAmountOverXgivesYdiscount:AdDetailsTotalAmountOverXgivesYdiscount? public var xforY:AdDetailsXforYdiscount? public var newArrivals:AdDetailsNewArrivals? public var freetext:AdDetailsFreetext? public var todaysBreakFastOffer:AdDetailsTodaysBreakFastOffer? public var todaysLunchOffer:AdDetailsTodaysLunchOffer? public var todaysDinnerOffer:AdDetailsTodaysDinnerOffer? public var saveFoodAndMoney:AdDetailsSaveFoodAndMoney? public var percentageOfYourFoodBill:AdDetailsPercentageOffYourFoodBill? public var happyHour:AdDetailsHappyHour? public var someFreeTablesLeftToday:AdDetailsSomeFreeTablesLeftToday? public var twoDishesForThePriceOfOne:AdDetailsTwoDishesForThePriceOfOne? required public init(){} } public class PlaceRelativeDateTimeDto : Codable { public var year:Int? public var month:Int? public var day:Int? public var hour:Int? public var minute:Int? public var second:Int? required public init(){} } public enum PriceMainDish : String, Codable { case Value case Medium case High case FineDining } public class OpeningHours : Codable { public var weekly:WeeklyOpeningHours? required public init(){} } public class PriceMainDishDto : Codable { public var title:String? public var slug:PriceMainDish? required public init(){} } public class PlaceBasicDto : Codable { public var id:Int? public var guid:String? public var name:String? public var businessId:Int? public var longitude:Float? public var latitude:Float? public var claimed:Bool? public var organizationNumber:String? public var countryCode:String? public var overview:String? public var openingHours:OpeningHours? public var placeType:PlaceType? public var contact:PlaceContact? public var address:PlaceAddress? public var wheelChairAccessible:Bool? public var wifi:Bool? public var outdoorSeating:Bool? public var saveFoodAndMoney:Bool? public var timeZoneDto:TimeZoneDto? public var priceMainDish:PriceMainDishDto? public var otherServices:[MallOtherServiceDto] = [] public var floor:String? required public init(){} } public class MallOtherServiceDto : Codable { public var id:Int? public var serviceName:String? public var floor:String? required public init(){} } public class BusinessAdDto : Codable { public var id:Int? public var guid:String? public var title:String? public var startAt:PlaceRelativeDateTimeDto? public var stopAt:PlaceRelativeDateTimeDto? public var publishAt:PlaceRelativeDateTimeDto? public var state:String? public var updatedAt:Date? public var imageUrls:[ImageUrls] = [] public var place:PlaceBasicDto? public var detailsUnion:AdDetailsUnion? required public init(){} } public class ImageUrls : Codable { public var preview:String? public var small:String? public var medium:String? public var large:String? required public init(){} } public class AdDetailsPercentageDiscountOnAllMerchandise : AdDetailsBase { public var value:Double? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case value } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) value = try container.decodeIfPresent(Double.self, forKey: .value) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if value != nil { try container.encode(value, forKey: .value) } } } public class AdDetailsPercentageDiscountRangeOnAllMerchandise : AdDetailsBase { public var start:Double? public var stop:Double? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case start case stop } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) start = try container.decodeIfPresent(Double.self, forKey: .start) stop = try container.decodeIfPresent(Double.self, forKey: .stop) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if start != nil { try container.encode(start, forKey: .start) } if stop != nil { try container.encode(stop, forKey: .stop) } } } public class AdDetailsPercentageDiscountOnSelectedMerchandise : AdDetailsBase { public var value:Double? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case value } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) value = try container.decodeIfPresent(Double.self, forKey: .value) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if value != nil { try container.encode(value, forKey: .value) } } } public class AdDetailsAbsoluteDiscountOnSelectedMerchandise : AdDetailsBase { public var value:Double? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case value } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) value = try container.decodeIfPresent(Double.self, forKey: .value) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if value != nil { try container.encode(value, forKey: .value) } } } public class AdDetailsAbsoluteDiscountRangeOnAllMerchandise : AdDetailsBase { public var start:Double? public var stop:Double? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case start case stop } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) start = try container.decodeIfPresent(Double.self, forKey: .start) stop = try container.decodeIfPresent(Double.self, forKey: .stop) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if start != nil { try container.encode(start, forKey: .start) } if stop != nil { try container.encode(stop, forKey: .stop) } } } public class AdDetailsTotalAmountOverXgivesYdiscount : AdDetailsBase { public var ifTotalAmountMoreThanX:Double? public var thenYouGetDiscountPercentageY:Double? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case ifTotalAmountMoreThanX case thenYouGetDiscountPercentageY } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) ifTotalAmountMoreThanX = try container.decodeIfPresent(Double.self, forKey: .ifTotalAmountMoreThanX) thenYouGetDiscountPercentageY = try container.decodeIfPresent(Double.self, forKey: .thenYouGetDiscountPercentageY) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if ifTotalAmountMoreThanX != nil { try container.encode(ifTotalAmountMoreThanX, forKey: .ifTotalAmountMoreThanX) } if thenYouGetDiscountPercentageY != nil { try container.encode(thenYouGetDiscountPercentageY, forKey: .thenYouGetDiscountPercentageY) } } } public class AdDetailsXforYdiscount : AdDetailsBase { public var ifYouBuyX:Int? public var thenYouGetY:Int? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case ifYouBuyX case thenYouGetY } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) ifYouBuyX = try container.decodeIfPresent(Int.self, forKey: .ifYouBuyX) thenYouGetY = try container.decodeIfPresent(Int.self, forKey: .thenYouGetY) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if ifYouBuyX != nil { try container.encode(ifYouBuyX, forKey: .ifYouBuyX) } if thenYouGetY != nil { try container.encode(thenYouGetY, forKey: .thenYouGetY) } } } public class AdDetailsNewArrivals : AdDetailsBase { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public class AdDetailsFreetext : AdDetailsBase { public var title:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case title } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) title = try container.decodeIfPresent(String.self, forKey: .title) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if title != nil { try container.encode(title, forKey: .title) } } } public class AdDetailsTodaysBreakFastOffer : AdDetailsBase { public var value:Double? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case value } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) value = try container.decodeIfPresent(Double.self, forKey: .value) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if value != nil { try container.encode(value, forKey: .value) } } } public class AdDetailsTodaysLunchOffer : AdDetailsBase { public var value:Double? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case value } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) value = try container.decodeIfPresent(Double.self, forKey: .value) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if value != nil { try container.encode(value, forKey: .value) } } } public class AdDetailsTodaysDinnerOffer : AdDetailsBase { public var value:Double? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case value } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) value = try container.decodeIfPresent(Double.self, forKey: .value) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if value != nil { try container.encode(value, forKey: .value) } } } public class AdDetailsSaveFoodAndMoney : AdDetailsBase { public var value:Double? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case value } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) value = try container.decodeIfPresent(Double.self, forKey: .value) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if value != nil { try container.encode(value, forKey: .value) } } } public class AdDetailsPercentageOffYourFoodBill : AdDetailsBase { public var percentage:Double? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case percentage } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) percentage = try container.decodeIfPresent(Double.self, forKey: .percentage) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if percentage != nil { try container.encode(percentage, forKey: .percentage) } } } public class AdDetailsHappyHour : AdDetailsBase { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public class AdDetailsSomeFreeTablesLeftToday : AdDetailsBase { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public class AdDetailsTwoDishesForThePriceOfOne : AdDetailsBase { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public class WeeklyOpeningHours : Codable { public var monday:OpeningHour? public var tuesday:OpeningHour? public var wednesday:OpeningHour? public var thursday:OpeningHour? public var friday:OpeningHour? public var saturday:OpeningHour? public var sunday:OpeningHour? required public init(){} } public enum PlaceType : String, Codable { case Mall case Regular } public class PlaceContact : Codable { public var phone:String? public var email:String? public var website:String? public var webShop:String? required public init(){} } public class PlaceAddress : Codable { public var street:String? public var postalCode:String? public var region:String? public var countryCode:String? required public init(){} } public class TimeZoneDto : Codable { @TimeSpan public var baseUtcOffset:TimeInterval? public var daylightName:String? public var displayName:String? public var id:String? public var standardName:String? public var supportsDaylightSavingTime:Bool? required public init(){} } public class AdDetailsBase : Codable { public var Description:String? public var moreInformation:[String] = [] required public init(){} } public class OpeningHour : Codable { public var openAtHour:Int? public var openAtMinute:Int? public var closeAtHour:Int? public var closeAtMinute:Int? required public init(){} }