""" Options: Date: 2026-11-08 11:29:49 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: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CampaignInformation: campaign_id: int = 0 campaign_name: Optional[str] = None amount: Decimal = decimal.Decimal(0) chap_pay_i_d: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BillMeLaterInformation: is_bill_me_later_payment: bool = False is_bill_me_later_subscription: bool = False member_subscription_inv_id: int = 0 campaigns: Optional[List[CampaignInformation]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ClientVerification: provider: Optional[str] = None verification_code: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CcPaymentInformation: card_number: Optional[str] = None cvv: Optional[str] = None exp_month: int = 0 exp_year: int = 0 cardholder_name: Optional[str] = None country: Optional[str] = None billing_address: Optional[str] = None address1: Optional[str] = None address2: Optional[str] = None city: Optional[str] = None state_province: Optional[str] = None postal_code: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AchPaymentInformation: account_holder_name: Optional[str] = None check_number: Optional[str] = None routing_number: Optional[str] = None account_number: Optional[str] = None account_type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SubscriberFormField: form_template_field_i_d: int = 0 name: Optional[str] = None value: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SubscriberFormData: form_template_i_d: int = 0 signup_type_i_d: int = 0 form_fields: Optional[List[SubscriberFormField]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SubscriptionInformation: frequency_i_d: int = 0 subscription_invoice_i_d: int = 0 auto_renew: bool = False has_agreed_to_terms: bool = False client_subscriber_id: Optional[str] = None renewed_member_subscription_inv_i_d: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SubscriberFormField: name: Optional[str] = None value: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SubscriptionCreateRs: is_success: bool = False unique_id: Optional[str] = None created_date_time: datetime.datetime = datetime.datetime(1, 1, 1) client_id: int = 0 billhighway_user_id: int = 0 confirmation_number: Optional[str] = None payment_confirmation_number: int = 0 subscription_confirmation_number: int = 0 error_code: Optional[str] = None message: Optional[str] = None friendly_message: Optional[str] = None # @Route("/signup/api/nat/{natID}/group/{groupID}/{userType}/user/{userID}/subscription", "POST") # @Route("/signup/api/nat/{natID}/group/{groupID}/subscription", "POST") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SubscriptionCreateRq(IReturn[SubscriptionCreateRs]): nat_i_d: int = 0 group_i_d: int = 0 client_group_i_d: Optional[str] = None user_type: Optional[str] = None user_i_d: Optional[str] = None form_data: Optional[SubscriberFormData] = None subscription_info: Optional[SubscriptionInformation] = None verification_info: Optional[ClientVerification] = None cc_payment_info: Optional[CcPaymentInformation] = None ach_payment_info: Optional[AchPaymentInformation] = None bill_me_later: Optional[BillMeLaterInformation] = None campaigns: Optional[List[CampaignInformation]] = None