/* Options: Date: 2026-06-13 03:52:54 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: FinanceRequest.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export class DashboardStatTile { public Key: string; public Label: string; public Value: number; public PreviousValue?: number; public Unit: string; public DeltaPct?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class DashboardSeriesPoint { public Label: string; public Value: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class DashboardSeries { public Name: string; public Points: DashboardSeriesPoint[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class FinanceLocationRow { public LocationName: string; public ServiceRev: number; public ProductRev: number; public SubscriptionRev: number; public Total: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class FinanceTopRow { public Name: string; public Revenue: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class FinanceSubscriptionInfo { public Mrr: number; public Arr: number; public ActiveCount: number; public NewCount: number; public ChurnedCount: number; public ChurnRatePct: number; 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 class FinanceResponse { public ResponseStatus: ResponseStatus; public Stats: DashboardStatTile[] = []; public Trend: DashboardSeries[] = []; public SourceMix: DashboardSeries; public ByLocation: FinanceLocationRow[] = []; public TopServices: FinanceTopRow[] = []; public TopProducts: FinanceTopRow[] = []; public Subscriptions: FinanceSubscriptionInfo; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/v1/dashboard/finance", "POST,OPTIONS") export class FinanceRequest implements IReturn { public FromDate: string; public ToDate: string; public LocationIds: string[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'FinanceRequest'; } public getMethod() { return 'POST'; } public createResponse() { return new FinanceResponse(); } }