/* Options: Date: 2026-07-08 21:16:48 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: PayApplicationCreateRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class PayApplicationLine implements IConvertible { int? PayApplicationLineID; int? PayApplicationID; String? CostCode; String? Description; double? ScheduledValue; double? FromPreviousPct; double? ThisPeriodPct; double? StoredMaterials; bool? IsChangeOrder; int? ChangeOrderID; int? SortOrder; PayApplicationLine({this.PayApplicationLineID,this.PayApplicationID,this.CostCode,this.Description,this.ScheduledValue,this.FromPreviousPct,this.ThisPeriodPct,this.StoredMaterials,this.IsChangeOrder,this.ChangeOrderID,this.SortOrder}); PayApplicationLine.fromJson(Map json) { fromMap(json); } fromMap(Map json) { PayApplicationLineID = json['PayApplicationLineID']; PayApplicationID = json['PayApplicationID']; CostCode = json['CostCode']; Description = json['Description']; ScheduledValue = JsonConverters.toDouble(json['ScheduledValue']); FromPreviousPct = JsonConverters.toDouble(json['FromPreviousPct']); ThisPeriodPct = JsonConverters.toDouble(json['ThisPeriodPct']); StoredMaterials = JsonConverters.toDouble(json['StoredMaterials']); IsChangeOrder = json['IsChangeOrder']; ChangeOrderID = json['ChangeOrderID']; SortOrder = json['SortOrder']; return this; } Map toJson() => { 'PayApplicationLineID': PayApplicationLineID, 'PayApplicationID': PayApplicationID, 'CostCode': CostCode, 'Description': Description, 'ScheduledValue': ScheduledValue, 'FromPreviousPct': FromPreviousPct, 'ThisPeriodPct': ThisPeriodPct, 'StoredMaterials': StoredMaterials, 'IsChangeOrder': IsChangeOrder, 'ChangeOrderID': ChangeOrderID, 'SortOrder': SortOrder }; getTypeName() => "PayApplicationLine"; TypeContext? context = _ctx; } class PayApplication implements IConvertible { int? PayApplicationID; String? PayApplicationUID; int? ProjectID; int? PeriodNumber; DateTime? PeriodStart; DateTime? PeriodEnd; String? Status; String? BillingTemplate; double? RetainagePct; double? OriginalContractSum; double? NetChangeByCO; double? ContractSumToDate; double? CompletedStoredToDate; double? RetainageAmount; double? EarnedLessRetainage; double? LessPreviousCertificates; double? CurrentPaymentDue; double? BalanceToFinish; int? InvoiceID; DateTime? CertifiedAt; String? CertifiedBy; String? CreatedBy; DateTime? CreatedAt; DateTime? UpdatedAt; List? Lines = []; PayApplication({this.PayApplicationID,this.PayApplicationUID,this.ProjectID,this.PeriodNumber,this.PeriodStart,this.PeriodEnd,this.Status,this.BillingTemplate,this.RetainagePct,this.OriginalContractSum,this.NetChangeByCO,this.ContractSumToDate,this.CompletedStoredToDate,this.RetainageAmount,this.EarnedLessRetainage,this.LessPreviousCertificates,this.CurrentPaymentDue,this.BalanceToFinish,this.InvoiceID,this.CertifiedAt,this.CertifiedBy,this.CreatedBy,this.CreatedAt,this.UpdatedAt,this.Lines}); PayApplication.fromJson(Map json) { fromMap(json); } fromMap(Map json) { PayApplicationID = json['PayApplicationID']; PayApplicationUID = json['PayApplicationUID']; ProjectID = json['ProjectID']; PeriodNumber = json['PeriodNumber']; PeriodStart = JsonConverters.fromJson(json['PeriodStart'],'DateTime',context!); PeriodEnd = JsonConverters.fromJson(json['PeriodEnd'],'DateTime',context!); Status = json['Status']; BillingTemplate = json['BillingTemplate']; RetainagePct = JsonConverters.toDouble(json['RetainagePct']); OriginalContractSum = JsonConverters.toDouble(json['OriginalContractSum']); NetChangeByCO = JsonConverters.toDouble(json['NetChangeByCO']); ContractSumToDate = JsonConverters.toDouble(json['ContractSumToDate']); CompletedStoredToDate = JsonConverters.toDouble(json['CompletedStoredToDate']); RetainageAmount = JsonConverters.toDouble(json['RetainageAmount']); EarnedLessRetainage = JsonConverters.toDouble(json['EarnedLessRetainage']); LessPreviousCertificates = JsonConverters.toDouble(json['LessPreviousCertificates']); CurrentPaymentDue = JsonConverters.toDouble(json['CurrentPaymentDue']); BalanceToFinish = JsonConverters.toDouble(json['BalanceToFinish']); InvoiceID = json['InvoiceID']; CertifiedAt = JsonConverters.fromJson(json['CertifiedAt'],'DateTime',context!); CertifiedBy = json['CertifiedBy']; CreatedBy = json['CreatedBy']; CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!); UpdatedAt = JsonConverters.fromJson(json['UpdatedAt'],'DateTime',context!); Lines = JsonConverters.fromJson(json['Lines'],'List',context!); return this; } Map toJson() => { 'PayApplicationID': PayApplicationID, 'PayApplicationUID': PayApplicationUID, 'ProjectID': ProjectID, 'PeriodNumber': PeriodNumber, 'PeriodStart': JsonConverters.toJson(PeriodStart,'DateTime',context!), 'PeriodEnd': JsonConverters.toJson(PeriodEnd,'DateTime',context!), 'Status': Status, 'BillingTemplate': BillingTemplate, 'RetainagePct': RetainagePct, 'OriginalContractSum': OriginalContractSum, 'NetChangeByCO': NetChangeByCO, 'ContractSumToDate': ContractSumToDate, 'CompletedStoredToDate': CompletedStoredToDate, 'RetainageAmount': RetainageAmount, 'EarnedLessRetainage': EarnedLessRetainage, 'LessPreviousCertificates': LessPreviousCertificates, 'CurrentPaymentDue': CurrentPaymentDue, 'BalanceToFinish': BalanceToFinish, 'InvoiceID': InvoiceID, 'CertifiedAt': JsonConverters.toJson(CertifiedAt,'DateTime',context!), 'CertifiedBy': CertifiedBy, 'CreatedBy': CreatedBy, 'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!), 'UpdatedAt': JsonConverters.toJson(UpdatedAt,'DateTime',context!), 'Lines': JsonConverters.toJson(Lines,'List',context!) }; getTypeName() => "PayApplication"; TypeContext? context = _ctx; } class PayApplicationResponse implements IConvertible { ResponseStatus? ResponseStatus; PayApplication? Application; PayApplicationResponse({this.ResponseStatus,this.Application}); PayApplicationResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); Application = JsonConverters.fromJson(json['Application'],'PayApplication',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'Application': JsonConverters.toJson(Application,'PayApplication',context!) }; getTypeName() => "PayApplicationResponse"; TypeContext? context = _ctx; } // @Route("/v1/projects/{ProjectID}/pay-apps", "POST,OPTIONS") class PayApplicationCreateRequest implements IReturn, IConvertible, IPost { int? ProjectID; DateTime? PeriodStart; DateTime? PeriodEnd; double? RetainagePct; String? BillingTemplate; PayApplicationCreateRequest({this.ProjectID,this.PeriodStart,this.PeriodEnd,this.RetainagePct,this.BillingTemplate}); PayApplicationCreateRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ProjectID = json['ProjectID']; PeriodStart = JsonConverters.fromJson(json['PeriodStart'],'DateTime',context!); PeriodEnd = JsonConverters.fromJson(json['PeriodEnd'],'DateTime',context!); RetainagePct = JsonConverters.toDouble(json['RetainagePct']); BillingTemplate = json['BillingTemplate']; return this; } Map toJson() => { 'ProjectID': ProjectID, 'PeriodStart': JsonConverters.toJson(PeriodStart,'DateTime',context!), 'PeriodEnd': JsonConverters.toJson(PeriodEnd,'DateTime',context!), 'RetainagePct': RetainagePct, 'BillingTemplate': BillingTemplate }; createResponse() => PayApplicationResponse(); getResponseTypeName() => "PayApplicationResponse"; getTypeName() => "PayApplicationCreateRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'PayApplicationLine': TypeInfo(TypeOf.Class, create:() => PayApplicationLine()), 'PayApplication': TypeInfo(TypeOf.Class, create:() => PayApplication()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'PayApplicationResponse': TypeInfo(TypeOf.Class, create:() => PayApplicationResponse()), 'PayApplicationCreateRequest': TypeInfo(TypeOf.Class, create:() => PayApplicationCreateRequest()), });