/* Options: Date: 2026-06-13 03:56:11 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: RfpPricePreviewRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class ResourcedPosition implements IConvertible { String? PositionTag; double? Hours; int? Headcount; String? SourceReference; String? Notes; bool? IsInCatalog; int? ContactID; ResourcedPosition({this.PositionTag,this.Hours,this.Headcount,this.SourceReference,this.Notes,this.IsInCatalog,this.ContactID}); ResourcedPosition.fromJson(Map json) { fromMap(json); } fromMap(Map json) { PositionTag = json['PositionTag']; Hours = JsonConverters.toDouble(json['Hours']); Headcount = json['Headcount']; SourceReference = json['SourceReference']; Notes = json['Notes']; IsInCatalog = json['IsInCatalog']; ContactID = json['ContactID']; return this; } Map toJson() => { 'PositionTag': PositionTag, 'Hours': Hours, 'Headcount': Headcount, 'SourceReference': SourceReference, 'Notes': Notes, 'IsInCatalog': IsInCatalog, 'ContactID': ContactID }; getTypeName() => "ResourcedPosition"; TypeContext? context = _ctx; } class ResourcedEquipment implements IConvertible { int? EquipmentID; String? EquipmentName; String? MakeModel; double? Quantity; double? DurationDays; String? SourceReference; String? Notes; bool? IsInCatalog; int? SuggestedEquipmentID; String? SuggestedEquipmentName; ResourcedEquipment({this.EquipmentID,this.EquipmentName,this.MakeModel,this.Quantity,this.DurationDays,this.SourceReference,this.Notes,this.IsInCatalog,this.SuggestedEquipmentID,this.SuggestedEquipmentName}); ResourcedEquipment.fromJson(Map json) { fromMap(json); } fromMap(Map json) { EquipmentID = json['EquipmentID']; EquipmentName = json['EquipmentName']; MakeModel = json['MakeModel']; Quantity = JsonConverters.toDouble(json['Quantity']); DurationDays = JsonConverters.toDouble(json['DurationDays']); SourceReference = json['SourceReference']; Notes = json['Notes']; IsInCatalog = json['IsInCatalog']; SuggestedEquipmentID = json['SuggestedEquipmentID']; SuggestedEquipmentName = json['SuggestedEquipmentName']; return this; } Map toJson() => { 'EquipmentID': EquipmentID, 'EquipmentName': EquipmentName, 'MakeModel': MakeModel, 'Quantity': Quantity, 'DurationDays': DurationDays, 'SourceReference': SourceReference, 'Notes': Notes, 'IsInCatalog': IsInCatalog, 'SuggestedEquipmentID': SuggestedEquipmentID, 'SuggestedEquipmentName': SuggestedEquipmentName }; getTypeName() => "ResourcedEquipment"; TypeContext? context = _ctx; } class ResourcedMaterial implements IConvertible { int? MaterialID; String? MaterialName; String? MakeModel; double? Quantity; String? Unit; String? SourceReference; String? Notes; bool? IsInCatalog; int? SuggestedMaterialID; String? SuggestedMaterialName; ResourcedMaterial({this.MaterialID,this.MaterialName,this.MakeModel,this.Quantity,this.Unit,this.SourceReference,this.Notes,this.IsInCatalog,this.SuggestedMaterialID,this.SuggestedMaterialName}); ResourcedMaterial.fromJson(Map json) { fromMap(json); } fromMap(Map json) { MaterialID = json['MaterialID']; MaterialName = json['MaterialName']; MakeModel = json['MakeModel']; Quantity = JsonConverters.toDouble(json['Quantity']); Unit = json['Unit']; SourceReference = json['SourceReference']; Notes = json['Notes']; IsInCatalog = json['IsInCatalog']; SuggestedMaterialID = json['SuggestedMaterialID']; SuggestedMaterialName = json['SuggestedMaterialName']; return this; } Map toJson() => { 'MaterialID': MaterialID, 'MaterialName': MaterialName, 'MakeModel': MakeModel, 'Quantity': Quantity, 'Unit': Unit, 'SourceReference': SourceReference, 'Notes': Notes, 'IsInCatalog': IsInCatalog, 'SuggestedMaterialID': SuggestedMaterialID, 'SuggestedMaterialName': SuggestedMaterialName }; getTypeName() => "ResourcedMaterial"; TypeContext? context = _ctx; } class TaskResourcing implements IConvertible { List? Positions = []; List? Equipment = []; List? Materials = []; TaskResourcing({this.Positions,this.Equipment,this.Materials}); TaskResourcing.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Positions = JsonConverters.fromJson(json['Positions'],'List',context!); Equipment = JsonConverters.fromJson(json['Equipment'],'List',context!); Materials = JsonConverters.fromJson(json['Materials'],'List',context!); return this; } Map toJson() => { 'Positions': JsonConverters.toJson(Positions,'List',context!), 'Equipment': JsonConverters.toJson(Equipment,'List',context!), 'Materials': JsonConverters.toJson(Materials,'List',context!) }; getTypeName() => "TaskResourcing"; TypeContext? context = _ctx; } class ProposedTask implements IConvertible { int? Seq; String? Name; String? Category; double? Quantity; String? Unit; String? SourceItemNumber; String? SourceReference; String? Notes; TaskResourcing? Resourcing; double? DurationDays; List? DependsOn = []; DateTime? EstimatedStartDate; DateTime? EstimatedEndDate; ProposedTask({this.Seq,this.Name,this.Category,this.Quantity,this.Unit,this.SourceItemNumber,this.SourceReference,this.Notes,this.Resourcing,this.DurationDays,this.DependsOn,this.EstimatedStartDate,this.EstimatedEndDate}); ProposedTask.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Seq = json['Seq']; Name = json['Name']; Category = json['Category']; Quantity = JsonConverters.toDouble(json['Quantity']); Unit = json['Unit']; SourceItemNumber = json['SourceItemNumber']; SourceReference = json['SourceReference']; Notes = json['Notes']; Resourcing = JsonConverters.fromJson(json['Resourcing'],'TaskResourcing',context!); DurationDays = JsonConverters.toDouble(json['DurationDays']); DependsOn = JsonConverters.fromJson(json['DependsOn'],'List',context!); EstimatedStartDate = JsonConverters.fromJson(json['EstimatedStartDate'],'DateTime',context!); EstimatedEndDate = JsonConverters.fromJson(json['EstimatedEndDate'],'DateTime',context!); return this; } Map toJson() => { 'Seq': Seq, 'Name': Name, 'Category': Category, 'Quantity': Quantity, 'Unit': Unit, 'SourceItemNumber': SourceItemNumber, 'SourceReference': SourceReference, 'Notes': Notes, 'Resourcing': JsonConverters.toJson(Resourcing,'TaskResourcing',context!), 'DurationDays': DurationDays, 'DependsOn': JsonConverters.toJson(DependsOn,'List',context!), 'EstimatedStartDate': JsonConverters.toJson(EstimatedStartDate,'DateTime',context!), 'EstimatedEndDate': JsonConverters.toJson(EstimatedEndDate,'DateTime',context!) }; getTypeName() => "ProposedTask"; TypeContext? context = _ctx; } class ProjectProposal implements IConvertible { int? RfpDocumentID; String? ProjectName; String? ClientName; String? ProjectType; String? ProjectLocation; String? Scope; String? ProjectDescription; int? ContractDurationDays; String? BidDueDate; DateTime? EstimatedStartDate; DateTime? EstimatedEndDate; List? Tasks = []; ProjectProposal({this.RfpDocumentID,this.ProjectName,this.ClientName,this.ProjectType,this.ProjectLocation,this.Scope,this.ProjectDescription,this.ContractDurationDays,this.BidDueDate,this.EstimatedStartDate,this.EstimatedEndDate,this.Tasks}); ProjectProposal.fromJson(Map json) { fromMap(json); } fromMap(Map json) { RfpDocumentID = json['RfpDocumentID']; ProjectName = json['ProjectName']; ClientName = json['ClientName']; ProjectType = json['ProjectType']; ProjectLocation = json['ProjectLocation']; Scope = json['Scope']; ProjectDescription = json['ProjectDescription']; ContractDurationDays = json['ContractDurationDays']; BidDueDate = json['BidDueDate']; EstimatedStartDate = JsonConverters.fromJson(json['EstimatedStartDate'],'DateTime',context!); EstimatedEndDate = JsonConverters.fromJson(json['EstimatedEndDate'],'DateTime',context!); Tasks = JsonConverters.fromJson(json['Tasks'],'List',context!); return this; } Map toJson() => { 'RfpDocumentID': RfpDocumentID, 'ProjectName': ProjectName, 'ClientName': ClientName, 'ProjectType': ProjectType, 'ProjectLocation': ProjectLocation, 'Scope': Scope, 'ProjectDescription': ProjectDescription, 'ContractDurationDays': ContractDurationDays, 'BidDueDate': BidDueDate, 'EstimatedStartDate': JsonConverters.toJson(EstimatedStartDate,'DateTime',context!), 'EstimatedEndDate': JsonConverters.toJson(EstimatedEndDate,'DateTime',context!), 'Tasks': JsonConverters.toJson(Tasks,'List',context!) }; getTypeName() => "ProjectProposal"; TypeContext? context = _ctx; } class CostRange implements IConvertible { double? Min; double? Max; double? Mid; CostRange({this.Min,this.Max,this.Mid}); CostRange.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Min = JsonConverters.toDouble(json['Min']); Max = JsonConverters.toDouble(json['Max']); Mid = JsonConverters.toDouble(json['Mid']); return this; } Map toJson() => { 'Min': Min, 'Max': Max, 'Mid': Mid }; getTypeName() => "CostRange"; TypeContext? context = _ctx; } class PricedPosition implements IConvertible { String? PositionTag; double? Hours; bool? HasInternalRate; double? RateMin; double? RateMax; double? RateAvg; int? ContactCount; CostRange? Cost; double? MarketRateReference; PricedPosition({this.PositionTag,this.Hours,this.HasInternalRate,this.RateMin,this.RateMax,this.RateAvg,this.ContactCount,this.Cost,this.MarketRateReference}); PricedPosition.fromJson(Map json) { fromMap(json); } fromMap(Map json) { PositionTag = json['PositionTag']; Hours = JsonConverters.toDouble(json['Hours']); HasInternalRate = json['HasInternalRate']; RateMin = JsonConverters.toDouble(json['RateMin']); RateMax = JsonConverters.toDouble(json['RateMax']); RateAvg = JsonConverters.toDouble(json['RateAvg']); ContactCount = json['ContactCount']; Cost = JsonConverters.fromJson(json['Cost'],'CostRange',context!); MarketRateReference = JsonConverters.toDouble(json['MarketRateReference']); return this; } Map toJson() => { 'PositionTag': PositionTag, 'Hours': Hours, 'HasInternalRate': HasInternalRate, 'RateMin': RateMin, 'RateMax': RateMax, 'RateAvg': RateAvg, 'ContactCount': ContactCount, 'Cost': JsonConverters.toJson(Cost,'CostRange',context!), 'MarketRateReference': MarketRateReference }; getTypeName() => "PricedPosition"; TypeContext? context = _ctx; } class PricedEquipment implements IConvertible { int? EquipmentID; String? EquipmentName; double? Quantity; double? DurationDays; String? RateType; double? BilledRate; double? CostRate; bool? HasRate; bool? IsInCatalog; double? Cost; double? CompanyCost; double? Margin; PricedEquipment({this.EquipmentID,this.EquipmentName,this.Quantity,this.DurationDays,this.RateType,this.BilledRate,this.CostRate,this.HasRate,this.IsInCatalog,this.Cost,this.CompanyCost,this.Margin}); PricedEquipment.fromJson(Map json) { fromMap(json); } fromMap(Map json) { EquipmentID = json['EquipmentID']; EquipmentName = json['EquipmentName']; Quantity = JsonConverters.toDouble(json['Quantity']); DurationDays = JsonConverters.toDouble(json['DurationDays']); RateType = json['RateType']; BilledRate = JsonConverters.toDouble(json['BilledRate']); CostRate = JsonConverters.toDouble(json['CostRate']); HasRate = json['HasRate']; IsInCatalog = json['IsInCatalog']; Cost = JsonConverters.toDouble(json['Cost']); CompanyCost = JsonConverters.toDouble(json['CompanyCost']); Margin = JsonConverters.toDouble(json['Margin']); return this; } Map toJson() => { 'EquipmentID': EquipmentID, 'EquipmentName': EquipmentName, 'Quantity': Quantity, 'DurationDays': DurationDays, 'RateType': RateType, 'BilledRate': BilledRate, 'CostRate': CostRate, 'HasRate': HasRate, 'IsInCatalog': IsInCatalog, 'Cost': Cost, 'CompanyCost': CompanyCost, 'Margin': Margin }; getTypeName() => "PricedEquipment"; TypeContext? context = _ctx; } class PricedMaterial implements IConvertible { int? MaterialID; String? MaterialName; double? Quantity; double? UnitCost; bool? HasRate; bool? IsInCatalog; double? Cost; PricedMaterial({this.MaterialID,this.MaterialName,this.Quantity,this.UnitCost,this.HasRate,this.IsInCatalog,this.Cost}); PricedMaterial.fromJson(Map json) { fromMap(json); } fromMap(Map json) { MaterialID = json['MaterialID']; MaterialName = json['MaterialName']; Quantity = JsonConverters.toDouble(json['Quantity']); UnitCost = JsonConverters.toDouble(json['UnitCost']); HasRate = json['HasRate']; IsInCatalog = json['IsInCatalog']; Cost = JsonConverters.toDouble(json['Cost']); return this; } Map toJson() => { 'MaterialID': MaterialID, 'MaterialName': MaterialName, 'Quantity': Quantity, 'UnitCost': UnitCost, 'HasRate': HasRate, 'IsInCatalog': IsInCatalog, 'Cost': Cost }; getTypeName() => "PricedMaterial"; TypeContext? context = _ctx; } class PricedTask implements IConvertible { String? Name; String? Category; List? Positions = []; List? Equipment = []; List? Materials = []; CostRange? Subtotal; PricedTask({this.Name,this.Category,this.Positions,this.Equipment,this.Materials,this.Subtotal}); PricedTask.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Name = json['Name']; Category = json['Category']; Positions = JsonConverters.fromJson(json['Positions'],'List',context!); Equipment = JsonConverters.fromJson(json['Equipment'],'List',context!); Materials = JsonConverters.fromJson(json['Materials'],'List',context!); Subtotal = JsonConverters.fromJson(json['Subtotal'],'CostRange',context!); return this; } Map toJson() => { 'Name': Name, 'Category': Category, 'Positions': JsonConverters.toJson(Positions,'List',context!), 'Equipment': JsonConverters.toJson(Equipment,'List',context!), 'Materials': JsonConverters.toJson(Materials,'List',context!), 'Subtotal': JsonConverters.toJson(Subtotal,'CostRange',context!) }; getTypeName() => "PricedTask"; TypeContext? context = _ctx; } class PricedProposal implements IConvertible { int? RfpDocumentID; String? ProjectName; String? Currency; List? Tasks = []; CostRange? Total; int? PositionsNeedingRate; int? EquipmentNotInCatalog; int? MaterialsNotInCatalog; int? PositionsNotInCatalog; double? EquipmentMargin; PricedProposal({this.RfpDocumentID,this.ProjectName,this.Currency,this.Tasks,this.Total,this.PositionsNeedingRate,this.EquipmentNotInCatalog,this.MaterialsNotInCatalog,this.PositionsNotInCatalog,this.EquipmentMargin}); PricedProposal.fromJson(Map json) { fromMap(json); } fromMap(Map json) { RfpDocumentID = json['RfpDocumentID']; ProjectName = json['ProjectName']; Currency = json['Currency']; Tasks = JsonConverters.fromJson(json['Tasks'],'List',context!); Total = JsonConverters.fromJson(json['Total'],'CostRange',context!); PositionsNeedingRate = json['PositionsNeedingRate']; EquipmentNotInCatalog = json['EquipmentNotInCatalog']; MaterialsNotInCatalog = json['MaterialsNotInCatalog']; PositionsNotInCatalog = json['PositionsNotInCatalog']; EquipmentMargin = JsonConverters.toDouble(json['EquipmentMargin']); return this; } Map toJson() => { 'RfpDocumentID': RfpDocumentID, 'ProjectName': ProjectName, 'Currency': Currency, 'Tasks': JsonConverters.toJson(Tasks,'List',context!), 'Total': JsonConverters.toJson(Total,'CostRange',context!), 'PositionsNeedingRate': PositionsNeedingRate, 'EquipmentNotInCatalog': EquipmentNotInCatalog, 'MaterialsNotInCatalog': MaterialsNotInCatalog, 'PositionsNotInCatalog': PositionsNotInCatalog, 'EquipmentMargin': EquipmentMargin }; getTypeName() => "PricedProposal"; TypeContext? context = _ctx; } class RfpPricingResponse implements IConvertible { ResponseStatus? ResponseStatus; int? RfpDocumentID; PricedProposal? Pricing; RfpPricingResponse({this.ResponseStatus,this.RfpDocumentID,this.Pricing}); RfpPricingResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); RfpDocumentID = json['RfpDocumentID']; Pricing = JsonConverters.fromJson(json['Pricing'],'PricedProposal',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'RfpDocumentID': RfpDocumentID, 'Pricing': JsonConverters.toJson(Pricing,'PricedProposal',context!) }; getTypeName() => "RfpPricingResponse"; TypeContext? context = _ctx; } // @Route("/v1/Rfp/PricePreview", "POST,OPTIONS") class RfpPricePreviewRequest implements IReturn, IConvertible, IPost { ProjectProposal? Proposal; RfpPricePreviewRequest({this.Proposal}); RfpPricePreviewRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Proposal = JsonConverters.fromJson(json['Proposal'],'ProjectProposal',context!); return this; } Map toJson() => { 'Proposal': JsonConverters.toJson(Proposal,'ProjectProposal',context!) }; createResponse() => RfpPricingResponse(); getResponseTypeName() => "RfpPricingResponse"; getTypeName() => "RfpPricePreviewRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'ResourcedPosition': TypeInfo(TypeOf.Class, create:() => ResourcedPosition()), 'ResourcedEquipment': TypeInfo(TypeOf.Class, create:() => ResourcedEquipment()), 'ResourcedMaterial': TypeInfo(TypeOf.Class, create:() => ResourcedMaterial()), 'TaskResourcing': TypeInfo(TypeOf.Class, create:() => TaskResourcing()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ProposedTask': TypeInfo(TypeOf.Class, create:() => ProposedTask()), 'ProjectProposal': TypeInfo(TypeOf.Class, create:() => ProjectProposal()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CostRange': TypeInfo(TypeOf.Class, create:() => CostRange()), 'PricedPosition': TypeInfo(TypeOf.Class, create:() => PricedPosition()), 'PricedEquipment': TypeInfo(TypeOf.Class, create:() => PricedEquipment()), 'PricedMaterial': TypeInfo(TypeOf.Class, create:() => PricedMaterial()), 'PricedTask': TypeInfo(TypeOf.Class, create:() => PricedTask()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'PricedProposal': TypeInfo(TypeOf.Class, create:() => PricedProposal()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'RfpPricingResponse': TypeInfo(TypeOf.Class, create:() => RfpPricingResponse()), 'RfpPricePreviewRequest': TypeInfo(TypeOf.Class, create:() => RfpPricePreviewRequest()), });