""" Options: Date: 2026-11-08 11:31:56 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: GroupSubscriptionInfoGetRq.* #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 class IApiRequest: pass class IApiResponse: pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Link: rel: Optional[str] = None url: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ApiParameter: name: Optional[str] = None value: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CountryInfo: country_i_d: int = 0 abbr: Optional[str] = None full_name: Optional[str] = None iso_a2: Optional[str] = None iso_num: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class StateInfo: country_i_d: int = 0 state_i_d: int = 0 abbr: Optional[str] = None full_name: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GroupBrandingInfo: items: Optional[List[ApiParameter]] = None countries: Optional[List[CountryInfo]] = None states: Optional[List[StateInfo]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SubscriptionFrequency: id: int = 0 description: Optional[str] = None friendly_description: Optional[str] = None total_amount: Decimal = decimal.Decimal(0) installment_amount: Decimal = decimal.Decimal(0) num_installments: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GroupSubscriptionInvoiceItem: id: int = 0 description: Optional[str] = None amount: Decimal = decimal.Decimal(0) frequencies: Optional[List[SubscriptionFrequency]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GroupSubscriptionInvoice: id: int = 0 lineage_i_d: int = 0 type_i_d: int = 0 description: Optional[str] = None invoice_items: Optional[List[GroupSubscriptionInvoiceItem]] = None frequency_totals: Optional[List[SubscriptionFrequency]] = None client_subscription_type_i_d: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GroupSubscriptionInvoiceType: id: int = 0 name: Optional[str] = None subscription_invoices: Optional[List[GroupSubscriptionInvoice]] = None subscription_inv_template_type_i_d: int = 0 template_type_name: 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 SubscriberForm: id: int = 0 form_tempate_i_d: int = 0 subscription_invoice_i_d: int = 0 signup_type_i_d: int = 0 fields: Optional[List[SubscriberFormField]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CampaignItem: id: int = 0 name: Optional[str] = None sub_title: Optional[str] = None description: Optional[str] = None has_goal: bool = False detail_uri: Optional[str] = None theme: Optional[CampaignTheme] = None goal: Optional[CampaignGoal] = None levels: Optional[List[CampaignLevel]] = None logo_url: Optional[str] = None high_resolution_logo_url: Optional[str] = None signup: Optional[Signup] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GroupSubscriptionInfo: branding_info: Optional[GroupBrandingInfo] = None subscriptions: Optional[List[GroupSubscriptionInvoiceType]] = None form_info: Optional[SubscriberForm] = None campaigns: Optional[List[CampaignItem]] = None @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 GroupSubscriptionInfoGetRs(IApiResponse): signup_info: Optional[GroupSubscriptionInfo] = None links: Optional[List[Link]] = None # @Route("/signup/api/nat/{natID}/group/{groupId}/signup/info", "GET") # @Route("/signup/api/nat/{natID}/group/{groupId}/{usertype}/user/{userid}/signup/info", "GET") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GroupSubscriptionInfoGetRq(IReturn[GroupSubscriptionInfoGetRs], IApiRequest): group_id: int = 0 user_id: Optional[str] = None user_type: Optional[str] = None nat_i_d: int = 0 is_print_view: Optional[str] = None