/* Options: Date: 2025-12-06 05:26:13 Version: 8.60 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://geniuslink-api-zane.dev.platform.georiot.com //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: PostLinkReportRequest.* //ExcludeTypes: //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.*,com.google.gson.annotations.*,com.google.gson.reflect.* */ import java.math.* import java.util.* import java.io.InputStream import net.servicestack.client.* import com.google.gson.annotations.* import com.google.gson.reflect.* @Route(Path="/v4/report/links", Verbs="POST") // @Route(Path="/v3.5/report/links", Verbs="POST") @DataContract open class PostLinkReportRequest : IReturn { @DataMember(Name="reports") @SerializedName("reports") open var reports:ArrayList? = null companion object { private val responseType = PostLinkReportResponse::class.java } override fun getResponseType(): Any? = PostLinkReportRequest.responseType } @DataContract open class PostLinkReportResponse { @DataMember(Name="responseStatus") @SerializedName("responseStatus") open var responseStatus:ResponseStatus? = null @DataMember(Name="reports") @SerializedName("reports") open var reports:ArrayList? = null } @DataContract open class ReportRequest { @DataMember(Name="items") @SerializedName("items") open var items:ArrayList? = null @DataMember(Name="groupBy") @SerializedName("groupBy") open var groupBy:ArrayList? = null @DataMember(Name="attribute") @SerializedName("attribute") open var attribute:String? = null @DataMember(Name="type") @SerializedName("type") open var Type:ReportType? = null @DataMember(Name="fromStartUtcInclusive") @SerializedName("fromStartUtcInclusive") open var fromStartUtcInclusive:Date? = null @DataMember(Name="fromEndUtcInclusive") @SerializedName("fromEndUtcInclusive") open var fromEndUtcInclusive:Date? = null @DataMember(Name="retailers") @SerializedName("retailers") open var retailers:ArrayList? = null } @DataContract open class Report { @DataMember(Name="data") @SerializedName("data") open var Data:ArrayList? = null @DataMember(Name="executionTimeMs") @SerializedName("executionTimeMs") open var executionTimeMs:Long? = null @DataMember(Name="totalItems") @SerializedName("totalItems") open var totalItems:Long? = null @DataMember(Name="errors") @SerializedName("errors") open var errors:ArrayList? = null @DataMember(Name="request") @SerializedName("request") open var request:ReportRequest? = null @DataMember(Name="totalClicks") @SerializedName("totalClicks") open var totalClicks:Long? = null } enum class GroupBy { Default, Retailer, Date, } enum class ReportType { ShortUrl, Group, User, } @DataContract open class ReportData { @DataMember(Name="id") @SerializedName("id") open var id:String? = null @DataMember(Name="item") @SerializedName("item") open var item:Item? = null @DataMember(Name="totalClicks") @SerializedName("totalClicks") open var totalClicks:BigInteger? = null @DataMember(Name="clicks") @SerializedName("clicks") open var actualClicks:BigInteger? = null @DataMember(Name="junkClicks") @SerializedName("junkClicks") open var junkClicks:BigInteger? = null @DataMember(Name="spiderClicks") @SerializedName("spiderClicks") open var spiderClicks:BigInteger? = null @DataMember(Name="dateUtc") @SerializedName("dateUtc") open var dateUtc:Date? = null } @DataContract open class Error { @DataMember(Name="code") @SerializedName("code") open var code:String? = null } @DataContract open class Item { @DataMember(Name="id") @SerializedName("id") open var id:String? = null @DataMember(Name="displayName") @SerializedName("displayName") open var displayName:String? = null }