/* Options: Date: 2026-08-01 05:31:30 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: CostCalcRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class CostInput implements IConvertible { double? Base; double? BillRate; double? FringeCash; double? FringePlan; bool? IsNight; double? HoursPerDay; int? OnDays; double? OnDaysExact; bool? HasTravel; bool? PerDiemEligible; bool? PrevailingWage; String? Jurisdiction; String? Unit; double? PriorHours; String? BurdenClass; double? WcRateOverride; CostInput({this.Base,this.BillRate,this.FringeCash,this.FringePlan,this.IsNight,this.HoursPerDay,this.OnDays,this.OnDaysExact,this.HasTravel,this.PerDiemEligible,this.PrevailingWage,this.Jurisdiction,this.Unit,this.PriorHours,this.BurdenClass,this.WcRateOverride}); CostInput.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Base = JsonConverters.toDouble(json['Base']); BillRate = JsonConverters.toDouble(json['BillRate']); FringeCash = JsonConverters.toDouble(json['FringeCash']); FringePlan = JsonConverters.toDouble(json['FringePlan']); IsNight = json['IsNight']; HoursPerDay = JsonConverters.toDouble(json['HoursPerDay']); OnDays = json['OnDays']; OnDaysExact = JsonConverters.toDouble(json['OnDaysExact']); HasTravel = json['HasTravel']; PerDiemEligible = json['PerDiemEligible']; PrevailingWage = json['PrevailingWage']; Jurisdiction = json['Jurisdiction']; Unit = json['Unit']; PriorHours = JsonConverters.toDouble(json['PriorHours']); BurdenClass = json['BurdenClass']; WcRateOverride = JsonConverters.toDouble(json['WcRateOverride']); return this; } Map toJson() => { 'Base': Base, 'BillRate': BillRate, 'FringeCash': FringeCash, 'FringePlan': FringePlan, 'IsNight': IsNight, 'HoursPerDay': HoursPerDay, 'OnDays': OnDays, 'OnDaysExact': OnDaysExact, 'HasTravel': HasTravel, 'PerDiemEligible': PerDiemEligible, 'PrevailingWage': PrevailingWage, 'Jurisdiction': Jurisdiction, 'Unit': Unit, 'PriorHours': PriorHours, 'BurdenClass': BurdenClass, 'WcRateOverride': WcRateOverride }; getTypeName() => "CostInput"; TypeContext? context = _ctx; } class CostLine implements IConvertible { String? Label; String? Detail; double? Amount; String? RuleId; CostLine({this.Label,this.Detail,this.Amount,this.RuleId}); CostLine.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Label = json['Label']; Detail = json['Detail']; Amount = JsonConverters.toDouble(json['Amount']); RuleId = json['RuleId']; return this; } Map toJson() => { 'Label': Label, 'Detail': Detail, 'Amount': Amount, 'RuleId': RuleId }; getTypeName() => "CostLine"; TypeContext? context = _ctx; } class CostBreakdown implements IConvertible { double? Rrop; double? St; double? Ot; double? Dt; double? TotalHours; double? Straight; double? DiffPay; double? OtPremium; double? DtPremium; double? CashWages; double? FringeCashPay; double? FringePlanPay; double? BurdenPct; double? BurdenAmount; bool? PerDiemApplies; double? PerDiemCost; double? PerDiemTaxable; double? PerDiemNonTax; double? Loaded; double? Revenue; double? Margin; double? MarginPct; double? OtMultiplier; double? DtMultiplier; double? PerDiemDaily; List? Lines = []; List? Notes = []; CostBreakdown({this.Rrop,this.St,this.Ot,this.Dt,this.TotalHours,this.Straight,this.DiffPay,this.OtPremium,this.DtPremium,this.CashWages,this.FringeCashPay,this.FringePlanPay,this.BurdenPct,this.BurdenAmount,this.PerDiemApplies,this.PerDiemCost,this.PerDiemTaxable,this.PerDiemNonTax,this.Loaded,this.Revenue,this.Margin,this.MarginPct,this.OtMultiplier,this.DtMultiplier,this.PerDiemDaily,this.Lines,this.Notes}); CostBreakdown.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Rrop = JsonConverters.toDouble(json['Rrop']); St = JsonConverters.toDouble(json['St']); Ot = JsonConverters.toDouble(json['Ot']); Dt = JsonConverters.toDouble(json['Dt']); TotalHours = JsonConverters.toDouble(json['TotalHours']); Straight = JsonConverters.toDouble(json['Straight']); DiffPay = JsonConverters.toDouble(json['DiffPay']); OtPremium = JsonConverters.toDouble(json['OtPremium']); DtPremium = JsonConverters.toDouble(json['DtPremium']); CashWages = JsonConverters.toDouble(json['CashWages']); FringeCashPay = JsonConverters.toDouble(json['FringeCashPay']); FringePlanPay = JsonConverters.toDouble(json['FringePlanPay']); BurdenPct = JsonConverters.toDouble(json['BurdenPct']); BurdenAmount = JsonConverters.toDouble(json['BurdenAmount']); PerDiemApplies = json['PerDiemApplies']; PerDiemCost = JsonConverters.toDouble(json['PerDiemCost']); PerDiemTaxable = JsonConverters.toDouble(json['PerDiemTaxable']); PerDiemNonTax = JsonConverters.toDouble(json['PerDiemNonTax']); Loaded = JsonConverters.toDouble(json['Loaded']); Revenue = JsonConverters.toDouble(json['Revenue']); Margin = JsonConverters.toDouble(json['Margin']); MarginPct = JsonConverters.toDouble(json['MarginPct']); OtMultiplier = JsonConverters.toDouble(json['OtMultiplier']); DtMultiplier = JsonConverters.toDouble(json['DtMultiplier']); PerDiemDaily = JsonConverters.toDouble(json['PerDiemDaily']); Lines = JsonConverters.fromJson(json['Lines'],'List',context!); Notes = JsonConverters.fromJson(json['Notes'],'List',context!); return this; } Map toJson() => { 'Rrop': Rrop, 'St': St, 'Ot': Ot, 'Dt': Dt, 'TotalHours': TotalHours, 'Straight': Straight, 'DiffPay': DiffPay, 'OtPremium': OtPremium, 'DtPremium': DtPremium, 'CashWages': CashWages, 'FringeCashPay': FringeCashPay, 'FringePlanPay': FringePlanPay, 'BurdenPct': BurdenPct, 'BurdenAmount': BurdenAmount, 'PerDiemApplies': PerDiemApplies, 'PerDiemCost': PerDiemCost, 'PerDiemTaxable': PerDiemTaxable, 'PerDiemNonTax': PerDiemNonTax, 'Loaded': Loaded, 'Revenue': Revenue, 'Margin': Margin, 'MarginPct': MarginPct, 'OtMultiplier': OtMultiplier, 'DtMultiplier': DtMultiplier, 'PerDiemDaily': PerDiemDaily, 'Lines': JsonConverters.toJson(Lines,'List',context!), 'Notes': JsonConverters.toJson(Notes,'List',context!) }; getTypeName() => "CostBreakdown"; TypeContext? context = _ctx; } class CostCalcResponse implements IConvertible { CostBreakdown? Result; CostInput? ResolvedInput; bool? CanSeePay; ResponseStatus? ResponseStatus; CostCalcResponse({this.Result,this.ResolvedInput,this.CanSeePay,this.ResponseStatus}); CostCalcResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Result = JsonConverters.fromJson(json['Result'],'CostBreakdown',context!); ResolvedInput = JsonConverters.fromJson(json['ResolvedInput'],'CostInput',context!); CanSeePay = json['CanSeePay']; ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'Result': JsonConverters.toJson(Result,'CostBreakdown',context!), 'ResolvedInput': JsonConverters.toJson(ResolvedInput,'CostInput',context!), 'CanSeePay': CanSeePay, 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!) }; getTypeName() => "CostCalcResponse"; TypeContext? context = _ctx; } // @Route("/v1/workforce/calc", "POST") class CostCalcRequest implements IReturn, IConvertible, IPost { CostInput? Input; int? ContactID; int? ProjectID; int? ShiftPatternID; String? Unit; CostCalcRequest({this.Input,this.ContactID,this.ProjectID,this.ShiftPatternID,this.Unit}); CostCalcRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Input = JsonConverters.fromJson(json['Input'],'CostInput',context!); ContactID = json['ContactID']; ProjectID = json['ProjectID']; ShiftPatternID = json['ShiftPatternID']; Unit = json['Unit']; return this; } Map toJson() => { 'Input': JsonConverters.toJson(Input,'CostInput',context!), 'ContactID': ContactID, 'ProjectID': ProjectID, 'ShiftPatternID': ShiftPatternID, 'Unit': Unit }; createResponse() => CostCalcResponse(); getResponseTypeName() => "CostCalcResponse"; getTypeName() => "CostCalcRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'CostInput': TypeInfo(TypeOf.Class, create:() => CostInput()), 'CostLine': TypeInfo(TypeOf.Class, create:() => CostLine()), 'CostBreakdown': TypeInfo(TypeOf.Class, create:() => CostBreakdown()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CostCalcResponse': TypeInfo(TypeOf.Class, create:() => CostCalcResponse()), 'CostCalcRequest': TypeInfo(TypeOf.Class, create:() => CostCalcRequest()), });