/* Options: Date: 2026-11-08 11:38:46 Version: 5.140 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://devapi.billhighway.com //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: SubscriptionCreateRq.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class CampaignInformation implements IConvertible { int? CampaignId; String? CampaignName; double? Amount; String? ChapPayID; CampaignInformation({this.CampaignId,this.CampaignName,this.Amount,this.ChapPayID}); CampaignInformation.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CampaignId = json['CampaignId']; CampaignName = json['CampaignName']; Amount = JsonConverters.toDouble(json['Amount']); ChapPayID = json['ChapPayID']; return this; } Map toJson() => { 'CampaignId': CampaignId, 'CampaignName': CampaignName, 'Amount': Amount, 'ChapPayID': ChapPayID }; getTypeName() => "CampaignInformation"; TypeContext? context = _ctx; } class BillMeLaterInformation implements IConvertible { bool? IsBillMeLaterPayment; bool? IsBillMeLaterSubscription; int? MemberSubscriptionInvId; List? Campaigns; BillMeLaterInformation({this.IsBillMeLaterPayment,this.IsBillMeLaterSubscription,this.MemberSubscriptionInvId,this.Campaigns}); BillMeLaterInformation.fromJson(Map json) { fromMap(json); } fromMap(Map json) { IsBillMeLaterPayment = json['IsBillMeLaterPayment']; IsBillMeLaterSubscription = json['IsBillMeLaterSubscription']; MemberSubscriptionInvId = json['MemberSubscriptionInvId']; Campaigns = JsonConverters.fromJson(json['Campaigns'],'List',context!); return this; } Map toJson() => { 'IsBillMeLaterPayment': IsBillMeLaterPayment, 'IsBillMeLaterSubscription': IsBillMeLaterSubscription, 'MemberSubscriptionInvId': MemberSubscriptionInvId, 'Campaigns': JsonConverters.toJson(Campaigns,'List',context!) }; getTypeName() => "BillMeLaterInformation"; TypeContext? context = _ctx; } class ClientVerification implements IConvertible { String? Provider; String? VerificationCode; ClientVerification({this.Provider,this.VerificationCode}); ClientVerification.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Provider = json['Provider']; VerificationCode = json['VerificationCode']; return this; } Map toJson() => { 'Provider': Provider, 'VerificationCode': VerificationCode }; getTypeName() => "ClientVerification"; TypeContext? context = _ctx; } class CcPaymentInformation implements IConvertible { String? CardNumber; String? Cvv; int? ExpMonth; int? ExpYear; String? CardholderName; String? Country; String? BillingAddress; String? Address1; String? Address2; String? City; String? StateProvince; String? PostalCode; CcPaymentInformation({this.CardNumber,this.Cvv,this.ExpMonth,this.ExpYear,this.CardholderName,this.Country,this.BillingAddress,this.Address1,this.Address2,this.City,this.StateProvince,this.PostalCode}); CcPaymentInformation.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CardNumber = json['CardNumber']; Cvv = json['Cvv']; ExpMonth = json['ExpMonth']; ExpYear = json['ExpYear']; CardholderName = json['CardholderName']; Country = json['Country']; BillingAddress = json['BillingAddress']; Address1 = json['Address1']; Address2 = json['Address2']; City = json['City']; StateProvince = json['StateProvince']; PostalCode = json['PostalCode']; return this; } Map toJson() => { 'CardNumber': CardNumber, 'Cvv': Cvv, 'ExpMonth': ExpMonth, 'ExpYear': ExpYear, 'CardholderName': CardholderName, 'Country': Country, 'BillingAddress': BillingAddress, 'Address1': Address1, 'Address2': Address2, 'City': City, 'StateProvince': StateProvince, 'PostalCode': PostalCode }; getTypeName() => "CcPaymentInformation"; TypeContext? context = _ctx; } class AchPaymentInformation implements IConvertible { String? AccountHolderName; String? CheckNumber; String? RoutingNumber; String? AccountNumber; String? AccountType; AchPaymentInformation({this.AccountHolderName,this.CheckNumber,this.RoutingNumber,this.AccountNumber,this.AccountType}); AchPaymentInformation.fromJson(Map json) { fromMap(json); } fromMap(Map json) { AccountHolderName = json['AccountHolderName']; CheckNumber = json['CheckNumber']; RoutingNumber = json['RoutingNumber']; AccountNumber = json['AccountNumber']; AccountType = json['AccountType']; return this; } Map toJson() => { 'AccountHolderName': AccountHolderName, 'CheckNumber': CheckNumber, 'RoutingNumber': RoutingNumber, 'AccountNumber': AccountNumber, 'AccountType': AccountType }; getTypeName() => "AchPaymentInformation"; TypeContext? context = _ctx; } class SubscriberFormField implements IConvertible { int? FormTemplateFieldID; String? Name; String? Value; SubscriberFormField({this.FormTemplateFieldID,this.Name,this.Value}); SubscriberFormField.fromJson(Map json) { fromMap(json); } fromMap(Map json) { FormTemplateFieldID = json['FormTemplateFieldID']; Name = json['Name']; Value = json['Value']; return this; } Map toJson() => { 'FormTemplateFieldID': FormTemplateFieldID, 'Name': Name, 'Value': Value }; getTypeName() => "SubscriberFormField"; TypeContext? context = _ctx; } class SubscriberFormData implements IConvertible { int? FormTemplateID; int? SignupTypeID; List? FormFields; SubscriberFormData({this.FormTemplateID,this.SignupTypeID,this.FormFields}); SubscriberFormData.fromJson(Map json) { fromMap(json); } fromMap(Map json) { FormTemplateID = json['FormTemplateID']; SignupTypeID = json['SignupTypeID']; FormFields = JsonConverters.fromJson(json['FormFields'],'List',context!); return this; } Map toJson() => { 'FormTemplateID': FormTemplateID, 'SignupTypeID': SignupTypeID, 'FormFields': JsonConverters.toJson(FormFields,'List',context!) }; getTypeName() => "SubscriberFormData"; TypeContext? context = _ctx; } class SubscriptionInformation implements IConvertible { int? FrequencyID; int? SubscriptionInvoiceID; bool? AutoRenew; bool? HasAgreedToTerms; String? ClientSubscriberId; int? RenewedMemberSubscriptionInvID; SubscriptionInformation({this.FrequencyID,this.SubscriptionInvoiceID,this.AutoRenew,this.HasAgreedToTerms,this.ClientSubscriberId,this.RenewedMemberSubscriptionInvID}); SubscriptionInformation.fromJson(Map json) { fromMap(json); } fromMap(Map json) { FrequencyID = json['FrequencyID']; SubscriptionInvoiceID = json['SubscriptionInvoiceID']; AutoRenew = json['AutoRenew']; HasAgreedToTerms = json['HasAgreedToTerms']; ClientSubscriberId = json['ClientSubscriberId']; RenewedMemberSubscriptionInvID = json['RenewedMemberSubscriptionInvID']; return this; } Map toJson() => { 'FrequencyID': FrequencyID, 'SubscriptionInvoiceID': SubscriptionInvoiceID, 'AutoRenew': AutoRenew, 'HasAgreedToTerms': HasAgreedToTerms, 'ClientSubscriberId': ClientSubscriberId, 'RenewedMemberSubscriptionInvID': RenewedMemberSubscriptionInvID }; getTypeName() => "SubscriptionInformation"; TypeContext? context = _ctx; } class SubscriberFormField implements IConvertible { String? Name; String? Value; SubscriberFormField({this.Name,this.Value}); SubscriberFormField.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Name = json['Name']; Value = json['Value']; return this; } Map toJson() => { 'Name': Name, 'Value': Value }; getTypeName() => "SubscriberFormField"; TypeContext? context = _ctx; } class SubscriptionCreateRs implements IConvertible { bool? IsSuccess; String? UniqueId; DateTime? CreatedDateTime; int? ClientId; int? BillhighwayUserId; String? ConfirmationNumber; int? PaymentConfirmationNumber; int? SubscriptionConfirmationNumber; String? ErrorCode; String? Message; String? FriendlyMessage; SubscriptionCreateRs({this.IsSuccess,this.UniqueId,this.CreatedDateTime,this.ClientId,this.BillhighwayUserId,this.ConfirmationNumber,this.PaymentConfirmationNumber,this.SubscriptionConfirmationNumber,this.ErrorCode,this.Message,this.FriendlyMessage}); SubscriptionCreateRs.fromJson(Map json) { fromMap(json); } fromMap(Map json) { IsSuccess = json['IsSuccess']; UniqueId = json['UniqueId']; CreatedDateTime = JsonConverters.fromJson(json['CreatedDateTime'],'DateTime',context!); ClientId = json['ClientId']; BillhighwayUserId = json['BillhighwayUserId']; ConfirmationNumber = json['ConfirmationNumber']; PaymentConfirmationNumber = json['PaymentConfirmationNumber']; SubscriptionConfirmationNumber = json['SubscriptionConfirmationNumber']; ErrorCode = json['ErrorCode']; Message = json['Message']; FriendlyMessage = json['FriendlyMessage']; return this; } Map toJson() => { 'IsSuccess': IsSuccess, 'UniqueId': UniqueId, 'CreatedDateTime': JsonConverters.toJson(CreatedDateTime,'DateTime',context!), 'ClientId': ClientId, 'BillhighwayUserId': BillhighwayUserId, 'ConfirmationNumber': ConfirmationNumber, 'PaymentConfirmationNumber': PaymentConfirmationNumber, 'SubscriptionConfirmationNumber': SubscriptionConfirmationNumber, 'ErrorCode': ErrorCode, 'Message': Message, 'FriendlyMessage': FriendlyMessage }; getTypeName() => "SubscriptionCreateRs"; TypeContext? context = _ctx; } // @Route("/signup/api/nat/{natID}/group/{groupID}/{userType}/user/{userID}/subscription", "POST") // @Route("/signup/api/nat/{natID}/group/{groupID}/subscription", "POST") class SubscriptionCreateRq implements IReturn, IConvertible { int? NatID; int? GroupID; String? ClientGroupID; String? UserType; String? UserID; SubscriberFormData? FormData; SubscriptionInformation? SubscriptionInfo; ClientVerification? VerificationInfo; CcPaymentInformation? CcPaymentInfo; AchPaymentInformation? AchPaymentInfo; BillMeLaterInformation? BillMeLater; List? Campaigns; SubscriptionCreateRq({this.NatID,this.GroupID,this.ClientGroupID,this.UserType,this.UserID,this.FormData,this.SubscriptionInfo,this.VerificationInfo,this.CcPaymentInfo,this.AchPaymentInfo,this.BillMeLater,this.Campaigns}); SubscriptionCreateRq.fromJson(Map json) { fromMap(json); } fromMap(Map json) { NatID = json['NatID']; GroupID = json['GroupID']; ClientGroupID = json['ClientGroupID']; UserType = json['UserType']; UserID = json['UserID']; FormData = JsonConverters.fromJson(json['FormData'],'SubscriberFormData',context!); SubscriptionInfo = JsonConverters.fromJson(json['SubscriptionInfo'],'SubscriptionInformation',context!); VerificationInfo = JsonConverters.fromJson(json['VerificationInfo'],'ClientVerification',context!); CcPaymentInfo = JsonConverters.fromJson(json['CcPaymentInfo'],'CcPaymentInformation',context!); AchPaymentInfo = JsonConverters.fromJson(json['AchPaymentInfo'],'AchPaymentInformation',context!); BillMeLater = JsonConverters.fromJson(json['BillMeLater'],'BillMeLaterInformation',context!); Campaigns = JsonConverters.fromJson(json['Campaigns'],'List',context!); return this; } Map toJson() => { 'NatID': NatID, 'GroupID': GroupID, 'ClientGroupID': ClientGroupID, 'UserType': UserType, 'UserID': UserID, 'FormData': JsonConverters.toJson(FormData,'SubscriberFormData',context!), 'SubscriptionInfo': JsonConverters.toJson(SubscriptionInfo,'SubscriptionInformation',context!), 'VerificationInfo': JsonConverters.toJson(VerificationInfo,'ClientVerification',context!), 'CcPaymentInfo': JsonConverters.toJson(CcPaymentInfo,'CcPaymentInformation',context!), 'AchPaymentInfo': JsonConverters.toJson(AchPaymentInfo,'AchPaymentInformation',context!), 'BillMeLater': JsonConverters.toJson(BillMeLater,'BillMeLaterInformation',context!), 'Campaigns': JsonConverters.toJson(Campaigns,'List',context!) }; createResponse() => SubscriptionCreateRs(); getResponseTypeName() => "SubscriptionCreateRs"; getTypeName() => "SubscriptionCreateRq"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'devapi.billhighway.com', types: { 'CampaignInformation': TypeInfo(TypeOf.Class, create:() => CampaignInformation()), 'BillMeLaterInformation': TypeInfo(TypeOf.Class, create:() => BillMeLaterInformation()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ClientVerification': TypeInfo(TypeOf.Class, create:() => ClientVerification()), 'CcPaymentInformation': TypeInfo(TypeOf.Class, create:() => CcPaymentInformation()), 'AchPaymentInformation': TypeInfo(TypeOf.Class, create:() => AchPaymentInformation()), 'SubscriberFormField': TypeInfo(TypeOf.Class, create:() => SubscriberFormField()), 'SubscriberFormData': TypeInfo(TypeOf.Class, create:() => SubscriberFormData()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'SubscriptionInformation': TypeInfo(TypeOf.Class, create:() => SubscriptionInformation()), 'SubscriptionCreateRs': TypeInfo(TypeOf.Class, create:() => SubscriptionCreateRs()), 'SubscriptionCreateRq': TypeInfo(TypeOf.Class, create:() => SubscriptionCreateRq()), });