/* Options: Date: 2026-03-26 02:45:11 SwiftVersion: 6.0 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://backoffice-api.brovs.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: GetInsightsRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/insights", "GET") public class GetInsightsRequest : IReturn, IGet, Codable { public typealias Return = GetInsightsResponse public var timeFilter:InsightTimeFilter? public var cacheVersion:Int? required public init(){} } public class GetInsightsResponse : Codable { public var overview:InsightsOverview? public var inviteFriendsSeries:[InsightsTimeBucket] = [] public var inviteFriendsTotals:InsightsSeriesTotal? public var inviteAcceptedSeries:[InsightsTimeBucket] = [] public var inviteAcceptedTotals:InsightsSeriesTotal? public var signUpsSeries:[InsightsTimeBucket] = [] public var signUpsTotals:InsightsSeriesTotal? public var optOutsSeries:[InsightsTimeBucket] = [] public var optOutsTotals:InsightsSeriesTotal? public var churnSeries:[InsightsTimeBucket] = [] public var churnTotals:InsightsSeriesTotal? public var activeUsersSeries:[InsightsTimeBucket] = [] public var activeUsersTotals:InsightsSeriesTotal? public var demographics:[InsightsAgeBucket] = [] public var demographicsTotals:InsightsDemographicsTotals? public var lotteryUniqueParticipants:Int? public var lotteryTotalPoints:Int? public var rewardPointsBreakdown:[PointsBreakdown] = [] public var rewardPointsTotalAll:Int? public var rewardPointsUniqueUsersAll:Int? required public init(){} } public enum InsightTimeFilter : String, Codable { case Daily case Weekly case Monthly } public class InsightsOverview : Codable { public var uniqueUsers:Int? public var signIns:Int? public var signUps:Int? public var invitesSent:Int? public var invitesClicked:Int? required public init(){} } public class InsightsTimeBucket : Codable { public var bucket:Date? public var value:Int? required public init(){} } public class InsightsSeriesTotal : Codable { public var total:Int? public var changePercent:Double? required public init(){} } public class InsightsAgeBucket : Codable { public var ageGroup:String? public var sex:String? public var count:Int? required public init(){} } public class InsightsDemographicsTotals : Codable { public var totalUsers:Int? public var maleCount:Int? public var femaleCount:Int? public var unspecifiedCount:Int? required public init(){} } public class PointsBreakdown : Codable { public var source:String? public var totalPoints:Int? public var uniqueUsers:Int? required public init(){} }