/* Options: Date: 2025-12-06 06:06:47 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: GetInvoicesByProjectRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; class Invoice implements IConvertible { int? InvoiceID; String? InvoiceUID; String? ProjectUID; String? InvoiceNumber; DateTime? InvoiceDate; DateTime? DueDate; String? FromName; String? FromPhone; String? FromEmail; String? FromAddress; String? FromDesc; String? ToName; String? ToPhone; String? ToEmail; String? ToAddress; String? ToDesc; String? Notes; String? Currency; int? Status; double? Total; bool? IsPaid; DateTime? PaidDate; bool? IsDeleted; bool? IsLocked; DateTime? CreatedDate; DateTime? ModifiedDate; String? CreatedByUID; Invoice({this.InvoiceID,this.InvoiceUID,this.ProjectUID,this.InvoiceNumber,this.InvoiceDate,this.DueDate,this.FromName,this.FromPhone,this.FromEmail,this.FromAddress,this.FromDesc,this.ToName,this.ToPhone,this.ToEmail,this.ToAddress,this.ToDesc,this.Notes,this.Currency,this.Status,this.Total,this.IsPaid,this.PaidDate,this.IsDeleted,this.IsLocked,this.CreatedDate,this.ModifiedDate,this.CreatedByUID}); Invoice.fromJson(Map json) { fromMap(json); } fromMap(Map json) { InvoiceID = json['InvoiceID']; InvoiceUID = json['InvoiceUID']; ProjectUID = json['ProjectUID']; InvoiceNumber = json['InvoiceNumber']; InvoiceDate = JsonConverters.fromJson(json['InvoiceDate'],'DateTime',context!); DueDate = JsonConverters.fromJson(json['DueDate'],'DateTime',context!); FromName = json['FromName']; FromPhone = json['FromPhone']; FromEmail = json['FromEmail']; FromAddress = json['FromAddress']; FromDesc = json['FromDesc']; ToName = json['ToName']; ToPhone = json['ToPhone']; ToEmail = json['ToEmail']; ToAddress = json['ToAddress']; ToDesc = json['ToDesc']; Notes = json['Notes']; Currency = json['Currency']; Status = json['Status']; Total = JsonConverters.toDouble(json['Total']); IsPaid = json['IsPaid']; PaidDate = JsonConverters.fromJson(json['PaidDate'],'DateTime',context!); IsDeleted = json['IsDeleted']; IsLocked = json['IsLocked']; CreatedDate = JsonConverters.fromJson(json['CreatedDate'],'DateTime',context!); ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!); CreatedByUID = json['CreatedByUID']; return this; } Map toJson() => { 'InvoiceID': InvoiceID, 'InvoiceUID': InvoiceUID, 'ProjectUID': ProjectUID, 'InvoiceNumber': InvoiceNumber, 'InvoiceDate': JsonConverters.toJson(InvoiceDate,'DateTime',context!), 'DueDate': JsonConverters.toJson(DueDate,'DateTime',context!), 'FromName': FromName, 'FromPhone': FromPhone, 'FromEmail': FromEmail, 'FromAddress': FromAddress, 'FromDesc': FromDesc, 'ToName': ToName, 'ToPhone': ToPhone, 'ToEmail': ToEmail, 'ToAddress': ToAddress, 'ToDesc': ToDesc, 'Notes': Notes, 'Currency': Currency, 'Status': Status, 'Total': Total, 'IsPaid': IsPaid, 'PaidDate': JsonConverters.toJson(PaidDate,'DateTime',context!), 'IsDeleted': IsDeleted, 'IsLocked': IsLocked, 'CreatedDate': JsonConverters.toJson(CreatedDate,'DateTime',context!), 'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!), 'CreatedByUID': CreatedByUID }; getTypeName() => "Invoice"; TypeContext? context = _ctx; } class ProjectInvoiceData implements IConvertible { double? InvoicedAmount; double? PaidAmount; ProjectInvoiceData({this.InvoicedAmount,this.PaidAmount}); ProjectInvoiceData.fromJson(Map json) { fromMap(json); } fromMap(Map json) { InvoicedAmount = JsonConverters.toDouble(json['InvoicedAmount']); PaidAmount = JsonConverters.toDouble(json['PaidAmount']); return this; } Map toJson() => { 'InvoicedAmount': InvoicedAmount, 'PaidAmount': PaidAmount }; getTypeName() => "ProjectInvoiceData"; TypeContext? context = _ctx; } class GetInvoicesByProjectResponse implements IConvertible { ResponseStatus? ResponseStatus; List? Invoices = []; ProjectInvoiceData? ProjectInvoiceData; GetInvoicesByProjectResponse({this.ResponseStatus,this.Invoices,this.ProjectInvoiceData}); GetInvoicesByProjectResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); Invoices = JsonConverters.fromJson(json['Invoices'],'List',context!); ProjectInvoiceData = JsonConverters.fromJson(json['ProjectInvoiceData'],'ProjectInvoiceData',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'Invoices': JsonConverters.toJson(Invoices,'List',context!), 'ProjectInvoiceData': JsonConverters.toJson(ProjectInvoiceData,'ProjectInvoiceData',context!) }; getTypeName() => "GetInvoicesByProjectResponse"; TypeContext? context = _ctx; } // @Route("/v1/invoice/project/{ProjectUID}", "GET,OPTIONS") class GetInvoicesByProjectRequest implements IReturn, IConvertible, IGet { String? ProjectUID; GetInvoicesByProjectRequest({this.ProjectUID}); GetInvoicesByProjectRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ProjectUID = json['ProjectUID']; return this; } Map toJson() => { 'ProjectUID': ProjectUID }; createResponse() => GetInvoicesByProjectResponse(); getResponseTypeName() => "GetInvoicesByProjectResponse"; getTypeName() => "GetInvoicesByProjectRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'Invoice': TypeInfo(TypeOf.Class, create:() => Invoice()), 'ProjectInvoiceData': TypeInfo(TypeOf.Class, create:() => ProjectInvoiceData()), 'GetInvoicesByProjectResponse': TypeInfo(TypeOf.Class, create:() => GetInvoicesByProjectResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'GetInvoicesByProjectRequest': TypeInfo(TypeOf.Class, create:() => GetInvoicesByProjectRequest()), });