""" Options: Date: 2024-05-15 14:08:00 Version: 6.50 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://www.clubready.com/api/current #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: CreateProspectRequest.* #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 RestrictedResourceType(str, Enum): STORE = 'Store' CHAIN = 'Chain' USER = 'User' UNDEFINED = 'Undefined' class IRestrictedApiRequest(IApiKeyEndpoint): restricted_id: Optional[int] = None restricted_resource_type: Optional[RestrictedResourceType] = None class IApiKeyEndpoint: api_key: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ApiDtoBase: api_key: Optional[str] = None store_id: Optional[int] = None chain_id: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CreateProspectRequestDto(ApiDtoBase): first_name: Optional[str] = None last_name: Optional[str] = None address: Optional[str] = None city: Optional[str] = None state: Optional[str] = None zip: Optional[str] = None email: Optional[str] = None gender: Optional[str] = None add_package_id: Optional[int] = None prospect_type_id: Optional[int] = None referral_type_id: Optional[int] = None send_email: bool = False phone: Optional[str] = None work_phone: Optional[str] = None date_of_birth: Optional[datetime.datetime] = None cell_phone: Optional[str] = None coupon: Optional[str] = None note: Optional[str] = None email_template_id: Optional[int] = None external_id: Optional[str] = None referred_by: Optional[int] = None assign_to_id: Optional[int] = None assign_to_method: int = 0 contacted_how: Optional[int] = None username: Optional[str] = None emergency_contact_name: Optional[str] = None emergency_contact_phone: Optional[str] = None emergency_contact_type: Optional[str] = None email_opt_out: bool = False # @Route("/users/prospect", "POST") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CreateProspectRequest(CreateProspectRequestDto, IRestrictedApiRequest): # @ApiMember(DataType="string", Description="Api Key - grants access to resources", IsRequired=true, Name="ApiKey", ParameterType="query") api_key: Optional[str] = None """ Api Key - grants access to resources """ # @ApiMember(DataType="integer", Description="ClubReady Club ID (StoreID internally)", IsRequired=true, Name="StoreId", ParameterType="query") store_id: Optional[int] = None """ ClubReady Club ID (StoreID internally) """ # @ApiMember(DataType="string", Description="First Name", IsRequired=true, Name="FirstName", ParameterType="query") first_name: Optional[str] = None """ First Name """ # @ApiMember(DataType="string", Description="Last Name", IsRequired=true, Name="LastName", ParameterType="query") last_name: Optional[str] = None """ Last Name """ # @ApiMember(DataType="string", Description="Email Address", IsRequired=true, Name="Email", ParameterType="query") email: Optional[str] = None """ Email Address """ # @ApiMember(DataType="string", Description="Gender (Format:'M'|'F')", Name="Gender", ParameterType="query") gender: Optional[str] = None """ Gender (Format:'M'|'F') """ # @ApiMember(DataType="string", Description="Address", Name="Address", ParameterType="query") address: Optional[str] = None """ Address """ # @ApiMember(DataType="string", Description="City", Name="City", ParameterType="query") city: Optional[str] = None """ City """ # @ApiMember(DataType="string", Name="State", ParameterType="query") state: Optional[str] = None # @ApiMember(DataType="string", Name="Zip", ParameterType="query") zip: Optional[str] = None # @ApiMember(DataType="string", Description="Home phone", Name="Phone", ParameterType="query") phone: Optional[str] = None """ Home phone """ # @ApiMember(DataType="string", Description="Work phone", Name="WorkPhone", ParameterType="query") work_phone: Optional[str] = None """ Work phone """ # @ApiMember(DataType="date", Description="Date of Birth (Format:YYYY-MM-DD)", Name="DateOfBirth", ParameterType="query") date_of_birth: Optional[datetime.datetime] = None """ Date of Birth (Format:YYYY-MM-DD) """ # @ApiMember(DataType="string", Description="Cell phone", Name="CellPhone", ParameterType="query") cell_phone: Optional[str] = None """ Cell phone """ # @ApiMember(DataType="integer", Description="Specify a Package to apply to the new prospect", Name="AddPackageId", ParameterType="query") add_package_id: Optional[int] = None """ Specify a Package to apply to the new prospect """ # @ApiMember(DataType="integer", Description="Specify a specific Prospect Type for the new prospect", Name="ProspectTypeId", ParameterType="query") prospect_type_id: Optional[int] = None """ Specify a specific Prospect Type for the new prospect """ # @ApiMember(DataType="integer", Description="Specify a specific Referral Type for the new prospect", Name="ReferralTypeId", ParameterType="query") referral_type_id: Optional[int] = None """ Specify a specific Referral Type for the new prospect """ # @ApiMember(DataType="boolean", Description="Send a Welcome email to the new prospect (Format:true|false)", IsRequired=true, Name="SendEmail", ParameterType="query") send_email: bool = False """ Send a Welcome email to the new prospect (Format:true|false) """ # @ApiMember(DataType="integer", Description="Only used if SendEmail = True", Name="EmailTemplateId", ParameterType="query") email_template_id: Optional[int] = None """ Only used if SendEmail = True """ # @ApiMember(DataType="string", Description="", Name="Coupon", ParameterType="query") coupon: Optional[str] = None """ """ # @ApiMember(DataType="string", Description="Add an internal note for the new prospect", Name="Note", ParameterType="query") note: Optional[str] = None """ Add an internal note for the new prospect """ # @ApiMember(DataType="string", Description="Unique ID for the user from your system. We store internally as ExternalUserId", Name="ExternalId", ParameterType="query") external_id: Optional[str] = None """ Unique ID for the user from your system. We store internally as ExternalUserId """ # @ApiMember(DataType="integer", Description="User ID of existing user who referred them.", Name="ReferredBy", ParameterType="query") referred_by: Optional[int] = None """ User ID of existing user who referred them. """ # @ApiMember(DataType="integer", Description="ClubReady UserId of staff to assign new member to.", Name="AssignToId", ParameterType="query") assign_to_id: Optional[int] = None """ ClubReady UserId of staff to assign new member to. """ # @ApiMember(DataType="integer", Description="Who should be assigned to this lead? 0 = Default lead assignments, 1 = When passing in a ReferredBy user, assign the new Lead to that referring user's Staff assignment.", Name="AssignToMethod", ParameterType="query") assign_to_method: int = 0 """ Who should be assigned to this lead? 0 = Default lead assignments, 1 = When passing in a ReferredBy user, assign the new Lead to that referring user's Staff assignment. """ # @ApiMember(DataType="string", Description="Username needs to be between 4 and 255 characters", Name="Username", ParameterType="query") username: Optional[str] = None """ Username needs to be between 4 and 255 characters """ # @ApiMember(DataType="string", Description="Emergency contact name", Name="EmergencyContactName", ParameterType="query") emergency_contact_name: Optional[str] = None """ Emergency contact name """ # @ApiMember(DataType="string", Description="Emergency contact phone number", Name="EmergencyContactPhone", ParameterType="query") emergency_contact_phone: Optional[str] = None """ Emergency contact phone number """ # @ApiMember(DataType="string", Description="Emergency contact relationship", Name="EmergencyContactType", ParameterType="query") emergency_contact_type: Optional[str] = None """ Emergency contact relationship """ # @ApiMember(DataType="boolean", Description="Set a prospect's email opt out status (Format:true|false)", Name="EmailOptOut", ParameterType="query") email_opt_out: bool = False """ Set a prospect's email opt out status (Format:true|false) """ restricted_id: Optional[int] = None restricted_resource_type: Optional[RestrictedResourceType] = None