/* Options: Date: 2026-07-08 20:41:34 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: MaterialShortfallsRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class MaterialShortfall implements IConvertible { int? MaterialID; String? Name; String? MaterialType; double? OnHand; double? QtyNeeded; double? ShortQty; String? Unit; double? UnitPrice; double? EstUSD; String? Vendor; DateTime? JobStartDate; MaterialShortfall({this.MaterialID,this.Name,this.MaterialType,this.OnHand,this.QtyNeeded,this.ShortQty,this.Unit,this.UnitPrice,this.EstUSD,this.Vendor,this.JobStartDate}); MaterialShortfall.fromJson(Map json) { fromMap(json); } fromMap(Map json) { MaterialID = json['MaterialID']; Name = json['Name']; MaterialType = json['MaterialType']; OnHand = JsonConverters.toDouble(json['OnHand']); QtyNeeded = JsonConverters.toDouble(json['QtyNeeded']); ShortQty = JsonConverters.toDouble(json['ShortQty']); Unit = json['Unit']; UnitPrice = JsonConverters.toDouble(json['UnitPrice']); EstUSD = JsonConverters.toDouble(json['EstUSD']); Vendor = json['Vendor']; JobStartDate = JsonConverters.fromJson(json['JobStartDate'],'DateTime',context!); return this; } Map toJson() => { 'MaterialID': MaterialID, 'Name': Name, 'MaterialType': MaterialType, 'OnHand': OnHand, 'QtyNeeded': QtyNeeded, 'ShortQty': ShortQty, 'Unit': Unit, 'UnitPrice': UnitPrice, 'EstUSD': EstUSD, 'Vendor': Vendor, 'JobStartDate': JsonConverters.toJson(JobStartDate,'DateTime',context!) }; getTypeName() => "MaterialShortfall"; TypeContext? context = _ctx; } class MaterialShortfallsResponse implements IConvertible { ResponseStatus? ResponseStatus; int? ProjectID; List? Shortfalls = []; MaterialShortfallsResponse({this.ResponseStatus,this.ProjectID,this.Shortfalls}); MaterialShortfallsResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); ProjectID = json['ProjectID']; Shortfalls = JsonConverters.fromJson(json['Shortfalls'],'List',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'ProjectID': ProjectID, 'Shortfalls': JsonConverters.toJson(Shortfalls,'List',context!) }; getTypeName() => "MaterialShortfallsResponse"; TypeContext? context = _ctx; } // @Route("/v1/projects/{ProjectID}/material-shortfalls", "GET,OPTIONS") class MaterialShortfallsRequest implements IReturn, IConvertible, IGet { int? ProjectID; MaterialShortfallsRequest({this.ProjectID}); MaterialShortfallsRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ProjectID = json['ProjectID']; return this; } Map toJson() => { 'ProjectID': ProjectID }; createResponse() => MaterialShortfallsResponse(); getResponseTypeName() => "MaterialShortfallsResponse"; getTypeName() => "MaterialShortfallsRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'MaterialShortfall': TypeInfo(TypeOf.Class, create:() => MaterialShortfall()), 'MaterialShortfallsResponse': TypeInfo(TypeOf.Class, create:() => MaterialShortfallsResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'MaterialShortfallsRequest': TypeInfo(TypeOf.Class, create:() => MaterialShortfallsRequest()), });