/* Options: Date: 2026-07-08 20:40:50 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: JobScheduleUpdateRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; 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 JobScheduleUpdateResponse implements IConvertible { ResponseStatus? ResponseStatus; TimelineJob? Job; JobScheduleUpdateResponse({this.ResponseStatus,this.Job}); JobScheduleUpdateResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); Job = JsonConverters.fromJson(json['Job'],'TimelineJob',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'Job': JsonConverters.toJson(Job,'TimelineJob',context!) }; getTypeName() => "JobScheduleUpdateResponse"; TypeContext? context = _ctx; } // @Route("/v1/project/job/{JobID}/schedule", "PUT,OPTIONS") class JobScheduleUpdateRequest implements IReturn, IConvertible, IPut { int? JobID; DateTime? ExpectedStartDate; DateTime? ExpectedCompletionDate; double? PercentComplete; JobScheduleUpdateRequest({this.JobID,this.ExpectedStartDate,this.ExpectedCompletionDate,this.PercentComplete}); JobScheduleUpdateRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { JobID = json['JobID']; ExpectedStartDate = JsonConverters.fromJson(json['ExpectedStartDate'],'DateTime',context!); ExpectedCompletionDate = JsonConverters.fromJson(json['ExpectedCompletionDate'],'DateTime',context!); PercentComplete = JsonConverters.toDouble(json['PercentComplete']); return this; } Map toJson() => { 'JobID': JobID, 'ExpectedStartDate': JsonConverters.toJson(ExpectedStartDate,'DateTime',context!), 'ExpectedCompletionDate': JsonConverters.toJson(ExpectedCompletionDate,'DateTime',context!), 'PercentComplete': PercentComplete }; createResponse() => JobScheduleUpdateResponse(); getResponseTypeName() => "JobScheduleUpdateResponse"; getTypeName() => "JobScheduleUpdateRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { '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:() => []), 'JobScheduleUpdateResponse': TypeInfo(TypeOf.Class, create:() => JobScheduleUpdateResponse()), 'JobScheduleUpdateRequest': TypeInfo(TypeOf.Class, create:() => JobScheduleUpdateRequest()), });