/* Options: Date: 2025-12-06 05:08:22 Version: 8.60 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://reporting-api-zane.dev.platform.georiot.com //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: PostLinkReportRequest.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export enum GroupBy { Default = 'Default', Retailer = 'Retailer', Date = 'Date', } export enum ReportType { ShortUrl = 'ShortUrl', Group = 'Group', User = 'User', } // @DataContract export class ReportRequest { // @DataMember(Name="items") public items: string[]; // @DataMember(Name="groupBy") public groupBy: GroupBy[]; // @DataMember(Name="attribute") public attribute: string; // @DataMember(Name="type") public type: ReportType; // @DataMember(Name="fromStartUtcInclusive") public fromStartUtcInclusive: string; // @DataMember(Name="fromEndUtcInclusive") public fromEndUtcInclusive: string; // @DataMember(Name="retailers") public retailers: string[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface IPostLinkReportRequest { reports: ReportRequest[]; } // @DataContract export class Item { // @DataMember(Name="id") public id: string; // @DataMember(Name="displayName") public displayName: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ReportData { // @DataMember(Name="id") public id: string; // @DataMember(Name="item") public item: Item; // @DataMember(Name="totalClicks") public totalClicks: number; // @DataMember(Name="clicks") public clicks: number; // @DataMember(Name="junkClicks") public junkClicks: number; // @DataMember(Name="spiderClicks") public spiderClicks: number; // @DataMember(Name="dateUtc") public dateUtc: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class Error { // @DataMember(Name="code") public code: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class Report { // @DataMember(Name="data") public data: ReportData[]; // @DataMember(Name="executionTimeMs") public executionTimeMs: number; // @DataMember(Name="totalItems") public totalItems: number; // @DataMember(Name="errors") public errors: Error[]; // @DataMember(Name="request") public request: ReportRequest; // @DataMember(Name="totalClicks") public totalClicks: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ResponseError { // @DataMember(Order=1) public errorCode: string; // @DataMember(Order=2) public fieldName: string; // @DataMember(Order=3) public message: string; // @DataMember(Order=4) public meta: { [index:string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ResponseStatus { // @DataMember(Order=1) public errorCode: string; // @DataMember(Order=2) public message: string; // @DataMember(Order=3) public stackTrace: string; // @DataMember(Order=4) public errors: ResponseError[]; // @DataMember(Order=5) public meta: { [index:string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface IPostLinkReportResponse { reports: Report[]; } // @DataContract export class PostLinkReportResponse implements IPostLinkReportResponse { // @DataMember(Name="reports") public reports: Report[]; // @DataMember(Name="responseStatus") public responseStatus: ResponseStatus; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/v4/report/links", "POST") // @DataContract export class PostLinkReportRequest implements IReturn, IPostLinkReportRequest { // @DataMember(Name="reports") public reports: ReportRequest[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'PostLinkReportRequest'; } public getMethod() { return 'POST'; } public createResponse() { return new PostLinkReportResponse(); } }