""" Options: Date: 2024-11-24 14:40:38 Version: 6.50 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://clubready.com/api/current #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: PaymentProfileImportEndpoint.* #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 IApiKeyEndpoint: api_key: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PaymentProfileImportRequest: acct_token: Optional[str] = None profile_token: Optional[str] = None do_not_update_payment_type_preference: bool = False new_owner: Optional[ValueTuple[int, OwnerType]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PaymentProfile: payment_profile_id: int = 0 acct_token: Optional[str] = None owner_id: int = 0 owner_type_id: int = 0 acct_type_id: int = 0 acct_class_id: int = 0 prefix_name: Optional[str] = None first_name: Optional[str] = None middle_name: Optional[str] = None last_name: Optional[str] = None suffix_name: Optional[str] = None address1: Optional[str] = None address2: Optional[str] = None urbanization: Optional[str] = None city: Optional[str] = None state: Optional[str] = None postal_code: Optional[str] = None country_code: Optional[str] = None last4: Optional[str] = None cc_exp_month: Optional[int] = None cc_exp_year: Optional[int] = None is_temp: bool = False is_disabled: bool = False on_hold_utc: Optional[datetime.datetime] = None on_hold_reason_code: Optional[int] = None on_hold_reason_detail: Optional[str] = None acct_updater_flag_utc: Optional[datetime.datetime] = None created_by: int = 0 created_utc: datetime.datetime = datetime.datetime(1, 1, 1) modified_by: int = 0 modified_utc: datetime.datetime = datetime.datetime(1, 1, 1) acct_updater_flag: bool = False entry_mode_id: int = 0 exclude_from_acct_updater: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PaymentProfileImportResponse: success: bool = False message: Optional[str] = None payment_profile: Optional[PaymentProfile] = None # @Route("/sales/paymentprofile/import", "POST") # @ApiResponse(Description="", ResponseType=typeof(PaymentProfileImportResponse), StatusCode=200) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PaymentProfileImportEndpoint(PaymentProfileImportRequest, IReturn[PaymentProfileImportResponse], IApiKeyEndpoint): # @ApiMember(Description="Api Authentication Key", IsRequired=true, ParameterType="query") api_key: Optional[str] = None """ Api Authentication Key """ # @ApiMember(Description="\r\nEncoded data uniquely identifying the payment profile. \r\nLong term storage of AcctToken is not recommended, as the token may change over time (for example, by processes like Account Updater). \r\nThe length is usually 80 characters.", IsRequired=true) acct_token: Optional[str] = None """ Encoded data uniquely identifying the payment profile. Long term storage of AcctToken is not recommended, as the token may change over time (for example, by processes like Account Updater). The length is usually 80 characters. """ # @ApiMember(Description="\r\nEncoded data containing non-PCI information about the Payment Profile. \r\n\r\nProfileTokens contain a timestamp. If the ClubReady API does not process the token within 5 minutes,\r\nit cannot be accepted and a new profile will have to be created with a new AcctToken. The time\r\nvalidation is to prevent old tokens from be re-played at a later time. \r\n\r\nThe length is variable, but generally around 1,000 characters.", IsRequired=true) profile_token: Optional[str] = None """ Encoded data containing non-PCI information about the Payment Profile. ProfileTokens contain a timestamp. If the ClubReady API does not process the token within 5 minutes,it cannot be accepted and a new profile will have to be created with a new AcctToken. The timevalidation is to prevent old tokens from be re-played at a later time. The length is variable, but generally around 1,000 characters. """ # @ApiMember(Description="\r\nWhen adding a Payment Profile that is 'on-file', the default behavior is to update the user's Payment Type\r\nPreference to the AcctClass of the new profile. If you wish to not update the preference, you can set\r\n`DoNotUpdatePaymentTypePreference` to `true`. Otherwise, this can be omitted or `false`. \r\n\r\nFor `IsTemp == true` profiles, `DoNotUpdatePaymentTypePreference` is ignored.") do_not_update_payment_type_preference: bool = False """ When adding a Payment Profile that is 'on-file', the default behavior is to update the user's Payment TypePreference to the AcctClass of the new profile. If you wish to not update the preference, you can set`DoNotUpdatePaymentTypePreference` to `true`. Otherwise, this can be omitted or `false`. For `IsTemp == true` profiles, `DoNotUpdatePaymentTypePreference` is ignored. """ # @ApiMember(Description="\r\n**Conditionally Required** \r\n\r\nWhen adding a Payment Profile that has an OwnerType of `TempStUser`, the ownership will be changed to OwnerType of `User`\r\nwith the `UserId` of the supplied `NewOwnerId`.") new_owner_id: Optional[int] = None """ **Conditionally Required** When adding a Payment Profile that has an OwnerType of `TempStUser`, the ownership will be changed to OwnerType of `User`with the `UserId` of the supplied `NewOwnerId`. """