/* Options: Date: 2026-07-08 21:16:37 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: ProjectTimelineRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class JobDependency implements IConvertible { int? JobDependencyID; String? TenantId; int? ProjectID; int? PredecessorJobID; int? SuccessorJobID; String? DependencyType; int? LagDays; String? CreatedBy; DateTime? CreatedAt; DateTime? UpdatedAt; JobDependency({this.JobDependencyID,this.TenantId,this.ProjectID,this.PredecessorJobID,this.SuccessorJobID,this.DependencyType,this.LagDays,this.CreatedBy,this.CreatedAt,this.UpdatedAt}); JobDependency.fromJson(Map json) { fromMap(json); } fromMap(Map json) { JobDependencyID = json['JobDependencyID']; TenantId = json['TenantId']; ProjectID = json['ProjectID']; PredecessorJobID = json['PredecessorJobID']; SuccessorJobID = json['SuccessorJobID']; DependencyType = json['DependencyType']; LagDays = json['LagDays']; CreatedBy = json['CreatedBy']; CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!); UpdatedAt = JsonConverters.fromJson(json['UpdatedAt'],'DateTime',context!); return this; } Map toJson() => { 'JobDependencyID': JobDependencyID, 'TenantId': TenantId, 'ProjectID': ProjectID, 'PredecessorJobID': PredecessorJobID, 'SuccessorJobID': SuccessorJobID, 'DependencyType': DependencyType, 'LagDays': LagDays, 'CreatedBy': CreatedBy, 'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!), 'UpdatedAt': JsonConverters.toJson(UpdatedAt,'DateTime',context!) }; getTypeName() => "JobDependency"; TypeContext? context = _ctx; } class TimelineCrew implements IConvertible { int? ProjectJobCrewMemberID; int? ContactID; String? ContactName; double? BudgetedHours; TimelineCrew({this.ProjectJobCrewMemberID,this.ContactID,this.ContactName,this.BudgetedHours}); TimelineCrew.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ProjectJobCrewMemberID = json['ProjectJobCrewMemberID']; ContactID = json['ContactID']; ContactName = json['ContactName']; BudgetedHours = JsonConverters.toDouble(json['BudgetedHours']); return this; } Map toJson() => { 'ProjectJobCrewMemberID': ProjectJobCrewMemberID, 'ContactID': ContactID, 'ContactName': ContactName, 'BudgetedHours': BudgetedHours }; getTypeName() => "TimelineCrew"; TypeContext? context = _ctx; } class TimelineEquipment implements IConvertible { int? ProjectJobEquipmentID; int? EquipmentID; String? EquipmentName; TimelineEquipment({this.ProjectJobEquipmentID,this.EquipmentID,this.EquipmentName}); TimelineEquipment.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ProjectJobEquipmentID = json['ProjectJobEquipmentID']; EquipmentID = json['EquipmentID']; EquipmentName = json['EquipmentName']; return this; } Map toJson() => { 'ProjectJobEquipmentID': ProjectJobEquipmentID, 'EquipmentID': EquipmentID, 'EquipmentName': EquipmentName }; getTypeName() => "TimelineEquipment"; TypeContext? context = _ctx; } class TimelineJob implements IConvertible { int? JobID; String? JobName; DateTime? ExpectedStartDate; DateTime? ExpectedCompletionDate; DateTime? ActualStartDate; DateTime? ActualEndDate; double? PercentComplete; int? StatusID; String? JobCategory; bool? IsAgreementVisit; DateTime? OccurrenceDate; List? Crew = []; List? Equipment = []; TimelineJob({this.JobID,this.JobName,this.ExpectedStartDate,this.ExpectedCompletionDate,this.ActualStartDate,this.ActualEndDate,this.PercentComplete,this.StatusID,this.JobCategory,this.IsAgreementVisit,this.OccurrenceDate,this.Crew,this.Equipment}); TimelineJob.fromJson(Map json) { fromMap(json); } fromMap(Map json) { JobID = json['JobID']; JobName = json['JobName']; ExpectedStartDate = JsonConverters.fromJson(json['ExpectedStartDate'],'DateTime',context!); ExpectedCompletionDate = JsonConverters.fromJson(json['ExpectedCompletionDate'],'DateTime',context!); ActualStartDate = JsonConverters.fromJson(json['ActualStartDate'],'DateTime',context!); ActualEndDate = JsonConverters.fromJson(json['ActualEndDate'],'DateTime',context!); PercentComplete = JsonConverters.toDouble(json['PercentComplete']); StatusID = json['StatusID']; JobCategory = json['JobCategory']; IsAgreementVisit = json['IsAgreementVisit']; OccurrenceDate = JsonConverters.fromJson(json['OccurrenceDate'],'DateTime',context!); Crew = JsonConverters.fromJson(json['Crew'],'List',context!); Equipment = JsonConverters.fromJson(json['Equipment'],'List',context!); return this; } Map toJson() => { 'JobID': JobID, 'JobName': JobName, 'ExpectedStartDate': JsonConverters.toJson(ExpectedStartDate,'DateTime',context!), 'ExpectedCompletionDate': JsonConverters.toJson(ExpectedCompletionDate,'DateTime',context!), 'ActualStartDate': JsonConverters.toJson(ActualStartDate,'DateTime',context!), 'ActualEndDate': JsonConverters.toJson(ActualEndDate,'DateTime',context!), 'PercentComplete': PercentComplete, 'StatusID': StatusID, 'JobCategory': JobCategory, 'IsAgreementVisit': IsAgreementVisit, 'OccurrenceDate': JsonConverters.toJson(OccurrenceDate,'DateTime',context!), 'Crew': JsonConverters.toJson(Crew,'List',context!), 'Equipment': JsonConverters.toJson(Equipment,'List',context!) }; getTypeName() => "TimelineJob"; TypeContext? context = _ctx; } class ProjectTimeline implements IConvertible { int? ProjectID; List? Jobs = []; List? Dependencies = []; ProjectTimeline({this.ProjectID,this.Jobs,this.Dependencies}); ProjectTimeline.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ProjectID = json['ProjectID']; Jobs = JsonConverters.fromJson(json['Jobs'],'List',context!); Dependencies = JsonConverters.fromJson(json['Dependencies'],'List',context!); return this; } Map toJson() => { 'ProjectID': ProjectID, 'Jobs': JsonConverters.toJson(Jobs,'List',context!), 'Dependencies': JsonConverters.toJson(Dependencies,'List',context!) }; getTypeName() => "ProjectTimeline"; TypeContext? context = _ctx; } class ProjectTimelineResponse implements IConvertible { ResponseStatus? ResponseStatus; ProjectTimeline? Timeline; ProjectTimelineResponse({this.ResponseStatus,this.Timeline}); ProjectTimelineResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); Timeline = JsonConverters.fromJson(json['Timeline'],'ProjectTimeline',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'Timeline': JsonConverters.toJson(Timeline,'ProjectTimeline',context!) }; getTypeName() => "ProjectTimelineResponse"; TypeContext? context = _ctx; } // @Route("/v1/project/{ProjectID}/timeline", "GET,OPTIONS") class ProjectTimelineRequest implements IReturn, IConvertible, IGet { int? ProjectID; ProjectTimelineRequest({this.ProjectID}); ProjectTimelineRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ProjectID = json['ProjectID']; return this; } Map toJson() => { 'ProjectID': ProjectID }; createResponse() => ProjectTimelineResponse(); getResponseTypeName() => "ProjectTimelineResponse"; getTypeName() => "ProjectTimelineRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'JobDependency': TypeInfo(TypeOf.Class, create:() => JobDependency()), 'TimelineCrew': TypeInfo(TypeOf.Class, create:() => TimelineCrew()), 'TimelineEquipment': TypeInfo(TypeOf.Class, create:() => TimelineEquipment()), 'TimelineJob': TypeInfo(TypeOf.Class, create:() => TimelineJob()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ProjectTimeline': TypeInfo(TypeOf.Class, create:() => ProjectTimeline()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ProjectTimelineResponse': TypeInfo(TypeOf.Class, create:() => ProjectTimelineResponse()), 'ProjectTimelineRequest': TypeInfo(TypeOf.Class, create:() => ProjectTimelineRequest()), });