/* Options: Date: 2025-12-06 05:00:13 SwiftVersion: 6.0 Version: 8.60 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://reporting-api-zane.dev.platform.georiot.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: PostLinkReportRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/v4/report/links", "POST") // @DataContract public class PostLinkReportRequest : IReturn, IPostLinkReportRequest, Codable { public typealias Return = PostLinkReportResponse // @DataMember(Name="reports") public var reports:[ReportRequest]? required public init(){} } // @DataContract public class PostLinkReportResponse : IPostLinkReportResponse, Codable { // @DataMember(Name="reports") public var reports:[Report]? // @DataMember(Name="responseStatus") public var responseStatus:ResponseStatus? required public init(){} } // @DataContract public class ReportRequest : Codable { // @DataMember(Name="items") public var items:[String]? // @DataMember(Name="groupBy") public var groupBy:[GroupBy]? // @DataMember(Name="attribute") public var attribute:String? // @DataMember(Name="type") public var type:ReportType? // @DataMember(Name="fromStartUtcInclusive") public var fromStartUtcInclusive:Date? // @DataMember(Name="fromEndUtcInclusive") public var fromEndUtcInclusive:Date? // @DataMember(Name="retailers") public var retailers:[String]? required public init(){} } public protocol IPostLinkReportRequest { var reports:[ReportRequest]? { get set } } // @DataContract public class Report : Codable { // @DataMember(Name="data") public var data:[ReportData]? // @DataMember(Name="executionTimeMs") public var executionTimeMs:Int? // @DataMember(Name="totalItems") public var totalItems:Int? // @DataMember(Name="errors") public var errors:[Error]? // @DataMember(Name="request") public var request:ReportRequest? // @DataMember(Name="totalClicks") public var totalClicks:Int? required public init(){} } public protocol IPostLinkReportResponse { var reports:[Report]? { get set } } public enum GroupBy : String, Codable { case Default case Retailer case Date } public enum ReportType : String, Codable { case ShortUrl case Group case User } // @DataContract public class ReportData : Codable { // @DataMember(Name="id") public var id:String? // @DataMember(Name="item") public var item:Item? // @DataMember(Name="totalClicks") public var totalClicks:UInt64? // @DataMember(Name="clicks") public var clicks:UInt64? // @DataMember(Name="junkClicks") public var junkClicks:UInt64? // @DataMember(Name="spiderClicks") public var spiderClicks:UInt64? // @DataMember(Name="dateUtc") public var dateUtc:Date? required public init(){} } // @DataContract public class Error : Codable { // @DataMember(Name="code") public var code:String? required public init(){} } // @DataContract public class Item : Codable { // @DataMember(Name="id") public var id:String? // @DataMember(Name="displayName") public var displayName:String? required public init(){} }