/* Options: Date: 2026-06-13 03:56: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: RfpPricingRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; 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/{RfpDocumentUID}/Pricing", "GET,OPTIONS") class RfpPricingRequest implements IReturn, IConvertible, IGet { String? RfpDocumentUID; RfpPricingRequest({this.RfpDocumentUID}); RfpPricingRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { RfpDocumentUID = json['RfpDocumentUID']; return this; } Map toJson() => { 'RfpDocumentUID': RfpDocumentUID }; createResponse() => RfpPricingResponse(); getResponseTypeName() => "RfpPricingResponse"; getTypeName() => "RfpPricingRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { '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()), 'RfpPricingRequest': TypeInfo(TypeOf.Class, create:() => RfpPricingRequest()), });