/* Options: Date: 2026-06-22 21:46:35 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: DeleteQuoteRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class QuoteItem implements IConvertible { int? QuoteItemID; int? QuoteID; String? ItemType; int? SourceRefId; int? JobID; String? Name; String? Description; double? Quantity; double? UnitPrice; bool? IsTaxable; int? DisplayOrder; bool? IsDeleted; QuoteItem({this.QuoteItemID,this.QuoteID,this.ItemType,this.SourceRefId,this.JobID,this.Name,this.Description,this.Quantity,this.UnitPrice,this.IsTaxable,this.DisplayOrder,this.IsDeleted}); QuoteItem.fromJson(Map json) { fromMap(json); } fromMap(Map json) { QuoteItemID = json['QuoteItemID']; QuoteID = json['QuoteID']; ItemType = json['ItemType']; SourceRefId = json['SourceRefId']; JobID = json['JobID']; Name = json['Name']; Description = json['Description']; Quantity = JsonConverters.toDouble(json['Quantity']); UnitPrice = JsonConverters.toDouble(json['UnitPrice']); IsTaxable = json['IsTaxable']; DisplayOrder = json['DisplayOrder']; IsDeleted = json['IsDeleted']; return this; } Map toJson() => { 'QuoteItemID': QuoteItemID, 'QuoteID': QuoteID, 'ItemType': ItemType, 'SourceRefId': SourceRefId, 'JobID': JobID, 'Name': Name, 'Description': Description, 'Quantity': Quantity, 'UnitPrice': UnitPrice, 'IsTaxable': IsTaxable, 'DisplayOrder': DisplayOrder, 'IsDeleted': IsDeleted }; getTypeName() => "QuoteItem"; TypeContext? context = _ctx; } class Quote implements IConvertible { int? QuoteID; String? QuoteUID; String? TenantId; String? BranchId; int? ProjectID; String? ProjectUID; String? ProjectName; String? Name; String? Status; double? Total; String? Notes; String? Currency; String? FromName; String? FromPhone; String? FromEmail; String? FromAddress; String? ToName; String? ToPhone; String? ToEmail; String? ToAddress; DateTime? ExpiresAt; bool? IsLocked; bool? FinalPriceAfterCompletion; String? ApprovedByName; DateTime? ApprovedAt; String? DeclinedByName; DateTime? DeclinedAt; String? DeclineReason; String? CreatedBy; DateTime? CreatedAt; String? UpdatedBy; DateTime? UpdatedAt; List? Items = []; Quote({this.QuoteID,this.QuoteUID,this.TenantId,this.BranchId,this.ProjectID,this.ProjectUID,this.ProjectName,this.Name,this.Status,this.Total,this.Notes,this.Currency,this.FromName,this.FromPhone,this.FromEmail,this.FromAddress,this.ToName,this.ToPhone,this.ToEmail,this.ToAddress,this.ExpiresAt,this.IsLocked,this.FinalPriceAfterCompletion,this.ApprovedByName,this.ApprovedAt,this.DeclinedByName,this.DeclinedAt,this.DeclineReason,this.CreatedBy,this.CreatedAt,this.UpdatedBy,this.UpdatedAt,this.Items}); Quote.fromJson(Map json) { fromMap(json); } fromMap(Map json) { QuoteID = json['QuoteID']; QuoteUID = json['QuoteUID']; TenantId = json['TenantId']; BranchId = json['BranchId']; ProjectID = json['ProjectID']; ProjectUID = json['ProjectUID']; ProjectName = json['ProjectName']; Name = json['Name']; Status = json['Status']; Total = JsonConverters.toDouble(json['Total']); Notes = json['Notes']; Currency = json['Currency']; FromName = json['FromName']; FromPhone = json['FromPhone']; FromEmail = json['FromEmail']; FromAddress = json['FromAddress']; ToName = json['ToName']; ToPhone = json['ToPhone']; ToEmail = json['ToEmail']; ToAddress = json['ToAddress']; ExpiresAt = JsonConverters.fromJson(json['ExpiresAt'],'DateTime',context!); IsLocked = json['IsLocked']; FinalPriceAfterCompletion = json['FinalPriceAfterCompletion']; ApprovedByName = json['ApprovedByName']; ApprovedAt = JsonConverters.fromJson(json['ApprovedAt'],'DateTime',context!); DeclinedByName = json['DeclinedByName']; DeclinedAt = JsonConverters.fromJson(json['DeclinedAt'],'DateTime',context!); DeclineReason = json['DeclineReason']; CreatedBy = json['CreatedBy']; CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!); UpdatedBy = json['UpdatedBy']; UpdatedAt = JsonConverters.fromJson(json['UpdatedAt'],'DateTime',context!); Items = JsonConverters.fromJson(json['Items'],'List',context!); return this; } Map toJson() => { 'QuoteID': QuoteID, 'QuoteUID': QuoteUID, 'TenantId': TenantId, 'BranchId': BranchId, 'ProjectID': ProjectID, 'ProjectUID': ProjectUID, 'ProjectName': ProjectName, 'Name': Name, 'Status': Status, 'Total': Total, 'Notes': Notes, 'Currency': Currency, 'FromName': FromName, 'FromPhone': FromPhone, 'FromEmail': FromEmail, 'FromAddress': FromAddress, 'ToName': ToName, 'ToPhone': ToPhone, 'ToEmail': ToEmail, 'ToAddress': ToAddress, 'ExpiresAt': JsonConverters.toJson(ExpiresAt,'DateTime',context!), 'IsLocked': IsLocked, 'FinalPriceAfterCompletion': FinalPriceAfterCompletion, 'ApprovedByName': ApprovedByName, 'ApprovedAt': JsonConverters.toJson(ApprovedAt,'DateTime',context!), 'DeclinedByName': DeclinedByName, 'DeclinedAt': JsonConverters.toJson(DeclinedAt,'DateTime',context!), 'DeclineReason': DeclineReason, 'CreatedBy': CreatedBy, 'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!), 'UpdatedBy': UpdatedBy, 'UpdatedAt': JsonConverters.toJson(UpdatedAt,'DateTime',context!), 'Items': JsonConverters.toJson(Items,'List',context!) }; getTypeName() => "Quote"; TypeContext? context = _ctx; } class QuoteResponse implements IConvertible { ResponseStatus? ResponseStatus; Quote? Quote; QuoteResponse({this.ResponseStatus,this.Quote}); QuoteResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); Quote = JsonConverters.fromJson(json['Quote'],'Quote',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'Quote': JsonConverters.toJson(Quote,'Quote',context!) }; getTypeName() => "QuoteResponse"; TypeContext? context = _ctx; } // @Route("/v1/quote/{QuoteID}", "DELETE,OPTIONS") class DeleteQuoteRequest implements IReturn, IConvertible, IDelete { int? QuoteID; DeleteQuoteRequest({this.QuoteID}); DeleteQuoteRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { QuoteID = json['QuoteID']; return this; } Map toJson() => { 'QuoteID': QuoteID }; createResponse() => QuoteResponse(); getResponseTypeName() => "QuoteResponse"; getTypeName() => "DeleteQuoteRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'QuoteItem': TypeInfo(TypeOf.Class, create:() => QuoteItem()), 'Quote': TypeInfo(TypeOf.Class, create:() => Quote()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'QuoteResponse': TypeInfo(TypeOf.Class, create:() => QuoteResponse()), 'DeleteQuoteRequest': TypeInfo(TypeOf.Class, create:() => DeleteQuoteRequest()), });