/* Options: Date: 2026-06-23 00:05:24 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: PmProjectsRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class PmProjectRow implements IConvertible { int? ProjectID; String? ProjectUID; String? Name; String? Client; String? ProjectType; String? Status; String? Branch; String? StartDate; String? EndDate; double? Budget; double? Spent; double? EstimatedCost; int? HealthPct; int? JobCount; int? OpenJobs; int? GapCount; bool? OverBudget; int? ProgressPct; PmProjectRow({this.ProjectID,this.ProjectUID,this.Name,this.Client,this.ProjectType,this.Status,this.Branch,this.StartDate,this.EndDate,this.Budget,this.Spent,this.EstimatedCost,this.HealthPct,this.JobCount,this.OpenJobs,this.GapCount,this.OverBudget,this.ProgressPct}); PmProjectRow.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ProjectID = json['ProjectID']; ProjectUID = json['ProjectUID']; Name = json['Name']; Client = json['Client']; ProjectType = json['ProjectType']; Status = json['Status']; Branch = json['Branch']; StartDate = json['StartDate']; EndDate = json['EndDate']; Budget = JsonConverters.toDouble(json['Budget']); Spent = JsonConverters.toDouble(json['Spent']); EstimatedCost = JsonConverters.toDouble(json['EstimatedCost']); HealthPct = json['HealthPct']; JobCount = json['JobCount']; OpenJobs = json['OpenJobs']; GapCount = json['GapCount']; OverBudget = json['OverBudget']; ProgressPct = json['ProgressPct']; return this; } Map toJson() => { 'ProjectID': ProjectID, 'ProjectUID': ProjectUID, 'Name': Name, 'Client': Client, 'ProjectType': ProjectType, 'Status': Status, 'Branch': Branch, 'StartDate': StartDate, 'EndDate': EndDate, 'Budget': Budget, 'Spent': Spent, 'EstimatedCost': EstimatedCost, 'HealthPct': HealthPct, 'JobCount': JobCount, 'OpenJobs': OpenJobs, 'GapCount': GapCount, 'OverBudget': OverBudget, 'ProgressPct': ProgressPct }; getTypeName() => "PmProjectRow"; TypeContext? context = _ctx; } class PmPortfolioTotals implements IConvertible { int? Projects; double? Budget; double? Spent; int? OverBudget; int? WithGaps; PmPortfolioTotals({this.Projects,this.Budget,this.Spent,this.OverBudget,this.WithGaps}); PmPortfolioTotals.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Projects = json['Projects']; Budget = JsonConverters.toDouble(json['Budget']); Spent = JsonConverters.toDouble(json['Spent']); OverBudget = json['OverBudget']; WithGaps = json['WithGaps']; return this; } Map toJson() => { 'Projects': Projects, 'Budget': Budget, 'Spent': Spent, 'OverBudget': OverBudget, 'WithGaps': WithGaps }; getTypeName() => "PmPortfolioTotals"; TypeContext? context = _ctx; } class PmProjectsResponse implements IConvertible { List? Projects = []; PmPortfolioTotals? Totals; ResponseStatus? ResponseStatus; PmProjectsResponse({this.Projects,this.Totals,this.ResponseStatus}); PmProjectsResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Projects = JsonConverters.fromJson(json['Projects'],'List',context!); Totals = JsonConverters.fromJson(json['Totals'],'PmPortfolioTotals',context!); ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'Projects': JsonConverters.toJson(Projects,'List',context!), 'Totals': JsonConverters.toJson(Totals,'PmPortfolioTotals',context!), 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!) }; getTypeName() => "PmProjectsResponse"; TypeContext? context = _ctx; } // @Route("/v1/pm/projects", "GET,OPTIONS") class PmProjectsRequest implements IReturn, IConvertible, IGet { String? Search; PmProjectsRequest({this.Search}); PmProjectsRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Search = json['Search']; return this; } Map toJson() => { 'Search': Search }; createResponse() => PmProjectsResponse(); getResponseTypeName() => "PmProjectsResponse"; getTypeName() => "PmProjectsRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'PmProjectRow': TypeInfo(TypeOf.Class, create:() => PmProjectRow()), 'PmPortfolioTotals': TypeInfo(TypeOf.Class, create:() => PmPortfolioTotals()), 'PmProjectsResponse': TypeInfo(TypeOf.Class, create:() => PmProjectsResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'PmProjectsRequest': TypeInfo(TypeOf.Class, create:() => PmProjectsRequest()), });