/* Options: Date: 2026-09-23 01:37:12 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: EstimateRevisionCompareRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; class TaskDiff implements IConvertible { String? TaskName; List? PositionsAdded = []; List? PositionsRemoved = []; List? PositionsStaffed = []; List? EquipmentAdded = []; List? EquipmentRemoved = []; List? MaterialsAdded = []; List? MaterialsRemoved = []; bool? HasChanges; TaskDiff({this.TaskName,this.PositionsAdded,this.PositionsRemoved,this.PositionsStaffed,this.EquipmentAdded,this.EquipmentRemoved,this.MaterialsAdded,this.MaterialsRemoved,this.HasChanges}); TaskDiff.fromJson(Map json) { fromMap(json); } fromMap(Map json) { TaskName = json['TaskName']; PositionsAdded = JsonConverters.fromJson(json['PositionsAdded'],'List',context!); PositionsRemoved = JsonConverters.fromJson(json['PositionsRemoved'],'List',context!); PositionsStaffed = JsonConverters.fromJson(json['PositionsStaffed'],'List',context!); EquipmentAdded = JsonConverters.fromJson(json['EquipmentAdded'],'List',context!); EquipmentRemoved = JsonConverters.fromJson(json['EquipmentRemoved'],'List',context!); MaterialsAdded = JsonConverters.fromJson(json['MaterialsAdded'],'List',context!); MaterialsRemoved = JsonConverters.fromJson(json['MaterialsRemoved'],'List',context!); HasChanges = json['HasChanges']; return this; } Map toJson() => { 'TaskName': TaskName, 'PositionsAdded': JsonConverters.toJson(PositionsAdded,'List',context!), 'PositionsRemoved': JsonConverters.toJson(PositionsRemoved,'List',context!), 'PositionsStaffed': JsonConverters.toJson(PositionsStaffed,'List',context!), 'EquipmentAdded': JsonConverters.toJson(EquipmentAdded,'List',context!), 'EquipmentRemoved': JsonConverters.toJson(EquipmentRemoved,'List',context!), 'MaterialsAdded': JsonConverters.toJson(MaterialsAdded,'List',context!), 'MaterialsRemoved': JsonConverters.toJson(MaterialsRemoved,'List',context!), 'HasChanges': HasChanges }; getTypeName() => "TaskDiff"; TypeContext? context = _ctx; } class ProposalDiff implements IConvertible { List? TasksAdded = []; List? TasksRemoved = []; List? Tasks = []; bool? HasChanges; ProposalDiff({this.TasksAdded,this.TasksRemoved,this.Tasks,this.HasChanges}); ProposalDiff.fromJson(Map json) { fromMap(json); } fromMap(Map json) { TasksAdded = JsonConverters.fromJson(json['TasksAdded'],'List',context!); TasksRemoved = JsonConverters.fromJson(json['TasksRemoved'],'List',context!); Tasks = JsonConverters.fromJson(json['Tasks'],'List',context!); HasChanges = json['HasChanges']; return this; } Map toJson() => { 'TasksAdded': JsonConverters.toJson(TasksAdded,'List',context!), 'TasksRemoved': JsonConverters.toJson(TasksRemoved,'List',context!), 'Tasks': JsonConverters.toJson(Tasks,'List',context!), 'HasChanges': HasChanges }; getTypeName() => "ProposalDiff"; TypeContext? context = _ctx; } class RevisionLineDelta implements IConvertible { String? ItemNo; String? Description; String? Unit; String? Change; double? QuantityA; double? QuantityB; double? UnitPriceA; double? UnitPriceB; double? ExtensionA; double? ExtensionB; double? QuantityDelta; double? UnitPriceDelta; double? ExtensionDelta; RevisionLineDelta({this.ItemNo,this.Description,this.Unit,this.Change,this.QuantityA,this.QuantityB,this.UnitPriceA,this.UnitPriceB,this.ExtensionA,this.ExtensionB,this.QuantityDelta,this.UnitPriceDelta,this.ExtensionDelta}); RevisionLineDelta.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ItemNo = json['ItemNo']; Description = json['Description']; Unit = json['Unit']; Change = json['Change']; QuantityA = JsonConverters.toDouble(json['QuantityA']); QuantityB = JsonConverters.toDouble(json['QuantityB']); UnitPriceA = JsonConverters.toDouble(json['UnitPriceA']); UnitPriceB = JsonConverters.toDouble(json['UnitPriceB']); ExtensionA = JsonConverters.toDouble(json['ExtensionA']); ExtensionB = JsonConverters.toDouble(json['ExtensionB']); QuantityDelta = JsonConverters.toDouble(json['QuantityDelta']); UnitPriceDelta = JsonConverters.toDouble(json['UnitPriceDelta']); ExtensionDelta = JsonConverters.toDouble(json['ExtensionDelta']); return this; } Map toJson() => { 'ItemNo': ItemNo, 'Description': Description, 'Unit': Unit, 'Change': Change, 'QuantityA': QuantityA, 'QuantityB': QuantityB, 'UnitPriceA': UnitPriceA, 'UnitPriceB': UnitPriceB, 'ExtensionA': ExtensionA, 'ExtensionB': ExtensionB, 'QuantityDelta': QuantityDelta, 'UnitPriceDelta': UnitPriceDelta, 'ExtensionDelta': ExtensionDelta }; getTypeName() => "RevisionLineDelta"; TypeContext? context = _ctx; } class EstimateRevisionCompareResult implements IConvertible { int? RevisionA; int? RevisionB; String? LabelA; String? LabelB; double? TotalA; double? TotalB; double? TotalDelta; double? BidTotalA; double? BidTotalB; int? Added; int? Removed; int? Changed; int? Unchanged; List? Lines = []; ProposalDiff? Scope; String? Summary; EstimateRevisionCompareResult({this.RevisionA,this.RevisionB,this.LabelA,this.LabelB,this.TotalA,this.TotalB,this.TotalDelta,this.BidTotalA,this.BidTotalB,this.Added,this.Removed,this.Changed,this.Unchanged,this.Lines,this.Scope,this.Summary}); EstimateRevisionCompareResult.fromJson(Map json) { fromMap(json); } fromMap(Map json) { RevisionA = json['RevisionA']; RevisionB = json['RevisionB']; LabelA = json['LabelA']; LabelB = json['LabelB']; TotalA = JsonConverters.toDouble(json['TotalA']); TotalB = JsonConverters.toDouble(json['TotalB']); TotalDelta = JsonConverters.toDouble(json['TotalDelta']); BidTotalA = JsonConverters.toDouble(json['BidTotalA']); BidTotalB = JsonConverters.toDouble(json['BidTotalB']); Added = json['Added']; Removed = json['Removed']; Changed = json['Changed']; Unchanged = json['Unchanged']; Lines = JsonConverters.fromJson(json['Lines'],'List',context!); Scope = JsonConverters.fromJson(json['Scope'],'ProposalDiff',context!); Summary = json['Summary']; return this; } Map toJson() => { 'RevisionA': RevisionA, 'RevisionB': RevisionB, 'LabelA': LabelA, 'LabelB': LabelB, 'TotalA': TotalA, 'TotalB': TotalB, 'TotalDelta': TotalDelta, 'BidTotalA': BidTotalA, 'BidTotalB': BidTotalB, 'Added': Added, 'Removed': Removed, 'Changed': Changed, 'Unchanged': Unchanged, 'Lines': JsonConverters.toJson(Lines,'List',context!), 'Scope': JsonConverters.toJson(Scope,'ProposalDiff',context!), 'Summary': Summary }; getTypeName() => "EstimateRevisionCompareResult"; TypeContext? context = _ctx; } class EstimateRevisionCompareResponse implements IConvertible { ResponseStatus? ResponseStatus; EstimateRevisionCompareResult? Compare; EstimateRevisionCompareResponse({this.ResponseStatus,this.Compare}); EstimateRevisionCompareResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); Compare = JsonConverters.fromJson(json['Compare'],'EstimateRevisionCompareResult',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'Compare': JsonConverters.toJson(Compare,'EstimateRevisionCompareResult',context!) }; getTypeName() => "EstimateRevisionCompareResponse"; TypeContext? context = _ctx; } // @Route("/v1/Rfp/{RfpDocumentUID}/Estimate/Revisions/{RevisionA}/Compare/{RevisionB}", "GET,OPTIONS") class EstimateRevisionCompareRequest implements IReturn, IConvertible, IGet { String? RfpDocumentUID; int? RevisionA; int? RevisionB; EstimateRevisionCompareRequest({this.RfpDocumentUID,this.RevisionA,this.RevisionB}); EstimateRevisionCompareRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { RfpDocumentUID = json['RfpDocumentUID']; RevisionA = json['RevisionA']; RevisionB = json['RevisionB']; return this; } Map toJson() => { 'RfpDocumentUID': RfpDocumentUID, 'RevisionA': RevisionA, 'RevisionB': RevisionB }; createResponse() => EstimateRevisionCompareResponse(); getResponseTypeName() => "EstimateRevisionCompareResponse"; getTypeName() => "EstimateRevisionCompareRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'TaskDiff': TypeInfo(TypeOf.Class, create:() => TaskDiff()), 'ProposalDiff': TypeInfo(TypeOf.Class, create:() => ProposalDiff()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'RevisionLineDelta': TypeInfo(TypeOf.Class, create:() => RevisionLineDelta()), 'EstimateRevisionCompareResult': TypeInfo(TypeOf.Class, create:() => EstimateRevisionCompareResult()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'EstimateRevisionCompareResponse': TypeInfo(TypeOf.Class, create:() => EstimateRevisionCompareResponse()), 'EstimateRevisionCompareRequest': TypeInfo(TypeOf.Class, create:() => EstimateRevisionCompareRequest()), });