/* Options: Date: 2026-06-22 20:32:54 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: AgreementKpiRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class DashboardStatTile implements IConvertible { String? Key; String? Label; double? Value; double? PreviousValue; String? Unit; double? DeltaPct; DashboardStatTile({this.Key,this.Label,this.Value,this.PreviousValue,this.Unit,this.DeltaPct}); DashboardStatTile.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Key = json['Key']; Label = json['Label']; Value = JsonConverters.toDouble(json['Value']); PreviousValue = JsonConverters.toDouble(json['PreviousValue']); Unit = json['Unit']; DeltaPct = JsonConverters.toDouble(json['DeltaPct']); return this; } Map toJson() => { 'Key': Key, 'Label': Label, 'Value': Value, 'PreviousValue': PreviousValue, 'Unit': Unit, 'DeltaPct': DeltaPct }; getTypeName() => "DashboardStatTile"; TypeContext? context = _ctx; } class AgreementKpiBranchRow implements IConvertible { String? BranchName; int? ActiveCount; double? Mrr; int? ExpiringCount; int? ChurnCount; double? SkippedRate; AgreementKpiBranchRow({this.BranchName,this.ActiveCount,this.Mrr,this.ExpiringCount,this.ChurnCount,this.SkippedRate}); AgreementKpiBranchRow.fromJson(Map json) { fromMap(json); } fromMap(Map json) { BranchName = json['BranchName']; ActiveCount = json['ActiveCount']; Mrr = JsonConverters.toDouble(json['Mrr']); ExpiringCount = json['ExpiringCount']; ChurnCount = json['ChurnCount']; SkippedRate = JsonConverters.toDouble(json['SkippedRate']); return this; } Map toJson() => { 'BranchName': BranchName, 'ActiveCount': ActiveCount, 'Mrr': Mrr, 'ExpiringCount': ExpiringCount, 'ChurnCount': ChurnCount, 'SkippedRate': SkippedRate }; getTypeName() => "AgreementKpiBranchRow"; TypeContext? context = _ctx; } class AgreementKpiResponse implements IConvertible { ResponseStatus? ResponseStatus; List? Stats = []; List? ByBranch = []; AgreementKpiResponse({this.ResponseStatus,this.Stats,this.ByBranch}); AgreementKpiResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); Stats = JsonConverters.fromJson(json['Stats'],'List',context!); ByBranch = JsonConverters.fromJson(json['ByBranch'],'List',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'Stats': JsonConverters.toJson(Stats,'List',context!), 'ByBranch': JsonConverters.toJson(ByBranch,'List',context!) }; getTypeName() => "AgreementKpiResponse"; TypeContext? context = _ctx; } // @Route("/v1/dashboard/agreements", "POST,OPTIONS") class AgreementKpiRequest implements IReturn, IConvertible, IPost { DateTime? FromDate; DateTime? ToDate; List? LocationIds = []; AgreementKpiRequest({this.FromDate,this.ToDate,this.LocationIds}); AgreementKpiRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { FromDate = JsonConverters.fromJson(json['FromDate'],'DateTime',context!); ToDate = JsonConverters.fromJson(json['ToDate'],'DateTime',context!); LocationIds = JsonConverters.fromJson(json['LocationIds'],'List',context!); return this; } Map toJson() => { 'FromDate': JsonConverters.toJson(FromDate,'DateTime',context!), 'ToDate': JsonConverters.toJson(ToDate,'DateTime',context!), 'LocationIds': JsonConverters.toJson(LocationIds,'List',context!) }; createResponse() => AgreementKpiResponse(); getResponseTypeName() => "AgreementKpiResponse"; getTypeName() => "AgreementKpiRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'DashboardStatTile': TypeInfo(TypeOf.Class, create:() => DashboardStatTile()), 'AgreementKpiBranchRow': TypeInfo(TypeOf.Class, create:() => AgreementKpiBranchRow()), 'AgreementKpiResponse': TypeInfo(TypeOf.Class, create:() => AgreementKpiResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'AgreementKpiRequest': TypeInfo(TypeOf.Class, create:() => AgreementKpiRequest()), });