/* Options: Date: 2026-07-08 21:14:46 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: CloseoutListRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class CloseoutItem implements IConvertible { int? CloseoutItemID; String? CloseoutItemUID; int? ProjectID; String? ItemKey; String? Label; String? Detail; String? Status; bool? IsApplicable; int? SortOrder; DateTime? CompletedAt; String? CompletedBy; String? CreatedBy; DateTime? CreatedAt; DateTime? UpdatedAt; CloseoutItem({this.CloseoutItemID,this.CloseoutItemUID,this.ProjectID,this.ItemKey,this.Label,this.Detail,this.Status,this.IsApplicable,this.SortOrder,this.CompletedAt,this.CompletedBy,this.CreatedBy,this.CreatedAt,this.UpdatedAt}); CloseoutItem.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CloseoutItemID = json['CloseoutItemID']; CloseoutItemUID = json['CloseoutItemUID']; ProjectID = json['ProjectID']; ItemKey = json['ItemKey']; Label = json['Label']; Detail = json['Detail']; Status = json['Status']; IsApplicable = json['IsApplicable']; SortOrder = json['SortOrder']; CompletedAt = JsonConverters.fromJson(json['CompletedAt'],'DateTime',context!); CompletedBy = json['CompletedBy']; CreatedBy = json['CreatedBy']; CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!); UpdatedAt = JsonConverters.fromJson(json['UpdatedAt'],'DateTime',context!); return this; } Map toJson() => { 'CloseoutItemID': CloseoutItemID, 'CloseoutItemUID': CloseoutItemUID, 'ProjectID': ProjectID, 'ItemKey': ItemKey, 'Label': Label, 'Detail': Detail, 'Status': Status, 'IsApplicable': IsApplicable, 'SortOrder': SortOrder, 'CompletedAt': JsonConverters.toJson(CompletedAt,'DateTime',context!), 'CompletedBy': CompletedBy, 'CreatedBy': CreatedBy, 'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!), 'UpdatedAt': JsonConverters.toJson(UpdatedAt,'DateTime',context!) }; getTypeName() => "CloseoutItem"; TypeContext? context = _ctx; } 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 CloseoutListResponse implements IConvertible { ResponseStatus? ResponseStatus; int? ProjectID; List? Items = []; CloseoutStatus? Status; CloseoutListResponse({this.ResponseStatus,this.ProjectID,this.Items,this.Status}); CloseoutListResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); ProjectID = json['ProjectID']; Items = JsonConverters.fromJson(json['Items'],'List',context!); Status = JsonConverters.fromJson(json['Status'],'CloseoutStatus',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'ProjectID': ProjectID, 'Items': JsonConverters.toJson(Items,'List',context!), 'Status': JsonConverters.toJson(Status,'CloseoutStatus',context!) }; getTypeName() => "CloseoutListResponse"; TypeContext? context = _ctx; } // @Route("/v1/projects/{ProjectID}/closeout", "GET,OPTIONS") class CloseoutListRequest implements IReturn, IConvertible, IGet { int? ProjectID; CloseoutListRequest({this.ProjectID}); CloseoutListRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ProjectID = json['ProjectID']; return this; } Map toJson() => { 'ProjectID': ProjectID }; createResponse() => CloseoutListResponse(); getResponseTypeName() => "CloseoutListResponse"; getTypeName() => "CloseoutListRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'CloseoutItem': TypeInfo(TypeOf.Class, create:() => CloseoutItem()), 'CloseoutStatus': TypeInfo(TypeOf.Class, create:() => CloseoutStatus()), 'CloseoutListResponse': TypeInfo(TypeOf.Class, create:() => CloseoutListResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CloseoutListRequest': TypeInfo(TypeOf.Class, create:() => CloseoutListRequest()), });