""" Options: Date: 2025-05-10 02:14:58 Version: 8.40 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://active-ewebservice.biz/aeservices30/api #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: ContractFullDetailsRequest.* #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 BaseRequest: # @ApiMember(DataType="string", Description="This is your AIM API Key provided by Tri-Tech", IsRequired=true, Name="ApiKey", ParameterType="header") api_key: Optional[str] = None """ This is your AIM API Key provided by Tri-Tech """ # @ApiMember(DataType="string", Name="OAuthToken", ParameterType="header") o_auth_token: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BaseSecureRequest(BaseRequest): # @ApiMember(DataType="string", Description="", Name="Token", ParameterType="Header") token: Optional[str] = None """ """ # @ApiMember(DataType="string", Description="", Name="DeviceId", ParameterType="Header") device_id: Optional[str] = None """ """ # @ApiMember(DataType="string", Description="", IsRequired=true, Name="AppId", ParameterType="Header") app_id: Optional[str] = None """ """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CcInfo: # @ApiMember(DataType="string", Description="Token returned from processor", IsRequired=true, Name="TokenStr", ParameterType="query") token_str: Optional[str] = None """ Token returned from processor """ # @ApiMember(DataType="string", Description="Card Type (VISA, MCARD, AMEX, DSCVR)", IsRequired=true, Name="CardType", ParameterType="query") card_type: Optional[str] = None """ Card Type (VISA, MCARD, AMEX, DSCVR) """ # @ApiMember(DataType="string", Description="Last four of the card", IsRequired=true, Name="LastFour", ParameterType="query") last_four: Optional[str] = None """ Last four of the card """ # @ApiMember(DataType="string", Description="Expiration Date of the Card. (MM/YY)", Name="Expiration", ParameterType="query") expiration: Optional[str] = None """ Expiration Date of the Card. (MM/YY) """ # @ApiMember(DataType="string", Description="Reason the card is on file.", Name="ReasonOnFile", ParameterType="query") reason_on_file: Optional[str] = None """ Reason the card is on file. """ # @ApiMember(DataType="integer", Description="ID of the existing Token Record in AIM, if applicable", Format="int64", Name="TokenPk", ParameterType="query") token_pk: Optional[int] = None """ ID of the existing Token Record in AIM, if applicable """ # @ApiMember(DataType="boolean", Description="Is this the customer's primary card? Defaults to false.", Name="Primary", ParameterType="query") primary: Optional[bool] = None """ Is this the customer's primary card? Defaults to false. """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ContractInventoryInfo: id: int = 0 begin_date: datetime.datetime = datetime.datetime(1, 1, 1) cat: int = 0 cost: Optional[Decimal] = None description: Optional[str] = None discount: Decimal = decimal.Decimal(0) dunn: Optional[str] = None end_date: datetime.datetime = datetime.datetime(1, 1, 1) inv_type: Optional[str] = None notes: Optional[str] = None our_price: Decimal = decimal.Decimal(0) qty: Decimal = decimal.Decimal(0) receipt_notes: Optional[str] = None serial: Optional[str] = None sub: int = 0 total: Decimal = decimal.Decimal(0) sku: Optional[str] = None mfg: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ContractValuesObject: position: int = 0 display: Optional[str] = None value: Decimal = decimal.Decimal(0) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ContractCalculatedFields: terms: int = 0 pay_stream: int = 0 final_pay: Decimal = decimal.Decimal(0) amount_due: Decimal = decimal.Decimal(0) payoff: Decimal = decimal.Decimal(0) discounted_payoff: Decimal = decimal.Decimal(0) rebate_fc: Decimal = decimal.Decimal(0) total_late: Decimal = decimal.Decimal(0) payments_late: Decimal = decimal.Decimal(0) payments_ahead: int = 0 total_maint_owed: Decimal = decimal.Decimal(0) current_plus_next: Decimal = decimal.Decimal(0) payoff_date: datetime.datetime = datetime.datetime(1, 1, 1) credit_amount: Decimal = decimal.Decimal(0) prin_less_tax: Decimal = decimal.Decimal(0) maint_less_tax: Decimal = decimal.Decimal(0) a_fee_less_tax: Decimal = decimal.Decimal(0) payment_tax: Decimal = decimal.Decimal(0) rent_due_info: Optional[List[ContractValuesObject]] = None payoff_info: Optional[List[ContractValuesObject]] = None notice: Optional[str] = None notice2: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PaymentGeneric: date: datetime.datetime = datetime.datetime(1, 1, 1) amount: Decimal = decimal.Decimal(0) ref: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ContractInfo: rnt_afee: Decimal = decimal.Decimal(0) rnt_alatedbt: bool = False rnt_amtfin: Decimal = decimal.Decimal(0) rnt_aofinchg: Decimal = decimal.Decimal(0) rnt_apaydbt: bool = False rnt_apaytyp: Optional[str] = None rnt_atcode: int = 0 rnt_autopayhold: datetime.datetime = datetime.datetime(1, 1, 1) rnt_avgbal: Decimal = decimal.Decimal(0) rnt_balance: Decimal = decimal.Decimal(0) rnt_billdays: int = 0 rnt_cdate: datetime.datetime = datetime.datetime(1, 1, 1) rnt_colagency: Optional[str] = None rnt_colamt: Decimal = decimal.Decimal(0) rnt_coupdate: datetime.datetime = datetime.datetime(1, 1, 1) rnt_cramt: Decimal = decimal.Decimal(0) rnt_crmo: int = 0 rnt_currafee: Decimal = decimal.Decimal(0) rnt_currbal: Decimal = decimal.Decimal(0) rnt_currfc: Decimal = decimal.Decimal(0) rnt_currfeetax1: Decimal = decimal.Decimal(0) rnt_currfeetax2: Decimal = decimal.Decimal(0) rnt_currlte: Decimal = decimal.Decimal(0) rnt_currma: Decimal = decimal.Decimal(0) rnt_curroth: Decimal = decimal.Decimal(0) rnt_currprn: Decimal = decimal.Decimal(0) rnt_currtax1: Decimal = decimal.Decimal(0) rnt_currtax2: Decimal = decimal.Decimal(0) rnt_dayslate: int = 0 rnt_daystlst: int = 0 rnt_deprcode: Optional[str] = None rnt_discount: Decimal = decimal.Decimal(0) rnt_downpay: Decimal = decimal.Decimal(0) rnt_dunn: Optional[str] = None rnt_edate: datetime.datetime = datetime.datetime(1, 1, 1) rnt_fdate: datetime.datetime = datetime.datetime(1, 1, 1) rnt_fee: Decimal = decimal.Decimal(0) rnt_finalpay: Decimal = decimal.Decimal(0) rnt_finchg: Decimal = decimal.Decimal(0) rnt_freemos: int = 0 rnt_intdate: datetime.datetime = datetime.datetime(1, 1, 1) rnt_intrate: Decimal = decimal.Decimal(0) rnt_irregular: bool = False rnt_itcode: int = 0 rnt_lastpaid: Decimal = decimal.Decimal(0) rnt_latefee: Decimal = decimal.Decimal(0) rnt_lateowed: Decimal = decimal.Decimal(0) rnt_ldate: datetime.datetime = datetime.datetime(1, 1, 1) rnt_ltcode: int = 0 rnt_monma: Decimal = decimal.Decimal(0) rnt_mopayreq: bool = False rnt_mtcode: int = 0 rnt_ndate: datetime.datetime = datetime.datetime(1, 1, 1) rnt_nextpayamt: Decimal = decimal.Decimal(0) rnt_nextpaynum: int = 0 rnt_notedate: datetime.datetime = datetime.datetime(1, 1, 1) rnt_notes: Optional[str] = None rnt_exchnotes: Optional[str] = None rnt_otherowed: Decimal = decimal.Decimal(0) rnt_payfreq: int = 0 rnt_latefreq: int = 0 rnt_payfreqtype: int = 0 rnt_payment: Decimal = decimal.Decimal(0) rnt_paystrm: int = 0 rnt_pk: int = 0 rnt_prevamt: Decimal = decimal.Decimal(0) rnt_prevmo: int = 0 rnt_price: Decimal = decimal.Decimal(0) rnt_rdate: datetime.datetime = datetime.datetime(1, 1, 1) rnt_sdate: datetime.datetime = datetime.datetime(1, 1, 1) rnt_student: Optional[str] = None rnt_sub: int = 0 rnt_tax: Decimal = decimal.Decimal(0) rnt_taxrate1: Decimal = decimal.Decimal(0) rnt_taxrate2: Decimal = decimal.Decimal(0) rnt_taxrateorig1: Decimal = decimal.Decimal(0) rnt_taxrateorig2: Decimal = decimal.Decimal(0) rnt_tcode: int = 0 rnt_term: int = 0 rnt_tmaint: Decimal = decimal.Decimal(0) rnt_tradein: Decimal = decimal.Decimal(0) rnt_typer: Optional[str] = None rnt_timestamp: datetime.datetime = datetime.datetime(1, 1, 1) acct: int = 0 tax_location: Optional[str] = None default_desc: Optional[str] = None payoff_desc: Optional[str] = None school: Optional[str] = None district: Optional[str] = None ref: Optional[str] = None auto_pay_declined: bool = False inventory: Optional[List[ContractInventoryInfo]] = None card_info: Optional[CcInfo] = None contract_calculated_fields: Optional[ContractCalculatedFields] = None payments: Optional[List[PaymentGeneric]] = None rnt_avacodeprin: Optional[str] = None rnt_avacodemaint: Optional[str] = None rnt_avacodelate: Optional[str] = None rnt_avacodelease: Optional[str] = None rnt_avacodefin: Optional[str] = None rnt_scheduledreturndate: datetime.datetime = datetime.datetime(1, 1, 1) rnt_scheduledreturnoption: Optional[str] = None rnt_scheduledreturnnotes: Optional[str] = None rnt_scheduledreturnstatus: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BaseResponse: # @ApiMember(DataType="BaseResponseResult", Description="", Name="Status", ParameterType="body") status: Optional[BaseResponseResult] = None """ """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ContractFullDetailsResponse(BaseResponse): contracts: Optional[List[ContractInfo]] = None remaining_records: int = 0 # @Route("/ContractFullDetails", "GET") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ContractFullDetailsRequest(BaseSecureRequest, IReturn[ContractFullDetailsResponse]): """ ContractFullDetailsRequires active-e Contracts Service. """ acct: Optional[int] = None sub: Optional[int] = None changed_date: Optional[datetime.datetime] = None serial_number: Optional[str] = None # @ApiMember(DataType="string", Description="If sent, additional calculated fields will be returned using this date", Format="date", Name="CalculationsDate", ParameterType="query") calculations_date: Optional[datetime.datetime] = None """ If sent, additional calculated fields will be returned using this date """ # @ApiMember(DataType="integer", Description="The Starting Offset", Format="int64", Name="StartOffset") start_offset: Optional[int] = None """ The Starting Offset """ # @ApiMember(DataType="integer", Description="The # of records to be returned", Format="int64", Name="RecordCount") record_count: Optional[int] = None """ The # of records to be returned """ # @ApiMember(DataType="string", Description="The Contract Ref# to be looked up. If sent, do not send WebRef, Acct, Sub, ChangedDate, SerialNumber, StartOffset, or Recordcount", Name="AIMRef") aim_ref: Optional[str] = None """ The Contract Ref# to be looked up. If sent, do not send WebRef, Acct, Sub, ChangedDate, SerialNumber, StartOffset, or Recordcount """ # @ApiMember(DataType="string", Description="The WebRef to be looked up. If sent, do not send AIMRef, Acct, Sub, ChangedDate, SerialNumber, StartOffset, or Recordcount", Name="WebRef") web_ref: Optional[str] = None """ The WebRef to be looked up. If sent, do not send AIMRef, Acct, Sub, ChangedDate, SerialNumber, StartOffset, or Recordcount """