/* Options: Date: 2026-07-08 21:37: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: ReleaseRetainageRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class CloseoutStatus implements IConvertible { int? ProjectID; int? TotalItems; int? DoneCount; int? OutstandingCount; bool? AllClear; double? RetainageAmount; bool? RetainageReleased; int? ReleasedPayApplicationID; int? ReleasedInvoiceID; DateTime? ReleasedAt; CloseoutStatus({this.ProjectID,this.TotalItems,this.DoneCount,this.OutstandingCount,this.AllClear,this.RetainageAmount,this.RetainageReleased,this.ReleasedPayApplicationID,this.ReleasedInvoiceID,this.ReleasedAt}); CloseoutStatus.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ProjectID = json['ProjectID']; TotalItems = json['TotalItems']; DoneCount = json['DoneCount']; OutstandingCount = json['OutstandingCount']; AllClear = json['AllClear']; RetainageAmount = JsonConverters.toDouble(json['RetainageAmount']); RetainageReleased = json['RetainageReleased']; ReleasedPayApplicationID = json['ReleasedPayApplicationID']; ReleasedInvoiceID = json['ReleasedInvoiceID']; ReleasedAt = JsonConverters.fromJson(json['ReleasedAt'],'DateTime',context!); return this; } Map toJson() => { 'ProjectID': ProjectID, 'TotalItems': TotalItems, 'DoneCount': DoneCount, 'OutstandingCount': OutstandingCount, 'AllClear': AllClear, 'RetainageAmount': RetainageAmount, 'RetainageReleased': RetainageReleased, 'ReleasedPayApplicationID': ReleasedPayApplicationID, 'ReleasedInvoiceID': ReleasedInvoiceID, 'ReleasedAt': JsonConverters.toJson(ReleasedAt,'DateTime',context!) }; getTypeName() => "CloseoutStatus"; TypeContext? context = _ctx; } class ReleaseRetainageResponse implements IConvertible { ResponseStatus? ResponseStatus; int? ProjectID; CloseoutStatus? Status; int? PayApplicationID; int? InvoiceID; double? RetainageReleased; ReleaseRetainageResponse({this.ResponseStatus,this.ProjectID,this.Status,this.PayApplicationID,this.InvoiceID,this.RetainageReleased}); ReleaseRetainageResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); ProjectID = json['ProjectID']; Status = JsonConverters.fromJson(json['Status'],'CloseoutStatus',context!); PayApplicationID = json['PayApplicationID']; InvoiceID = json['InvoiceID']; RetainageReleased = JsonConverters.toDouble(json['RetainageReleased']); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'ProjectID': ProjectID, 'Status': JsonConverters.toJson(Status,'CloseoutStatus',context!), 'PayApplicationID': PayApplicationID, 'InvoiceID': InvoiceID, 'RetainageReleased': RetainageReleased }; getTypeName() => "ReleaseRetainageResponse"; TypeContext? context = _ctx; } // @Route("/v1/projects/{ProjectID}/closeout/release-retainage", "POST,OPTIONS") class ReleaseRetainageRequest implements IReturn, IConvertible, IPost { int? ProjectID; ReleaseRetainageRequest({this.ProjectID}); ReleaseRetainageRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ProjectID = json['ProjectID']; return this; } Map toJson() => { 'ProjectID': ProjectID }; createResponse() => ReleaseRetainageResponse(); getResponseTypeName() => "ReleaseRetainageResponse"; getTypeName() => "ReleaseRetainageRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'CloseoutStatus': TypeInfo(TypeOf.Class, create:() => CloseoutStatus()), 'ReleaseRetainageResponse': TypeInfo(TypeOf.Class, create:() => ReleaseRetainageResponse()), 'ReleaseRetainageRequest': TypeInfo(TypeOf.Class, create:() => ReleaseRetainageRequest()), });