""" Options: Date: 2025-04-04 17:46:59 Version: 5.140 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://api.clubmanagercentral.com #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: MemberService.GetMemberRequest.* #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 Gender(str, Enum): UNKNOWN = 'Unknown' MALE = 'Male' FEMALE = 'Female' OTHER = 'Other' PREFER_NOT_TO_SAY = 'PreferNotToSay' class ExternalStatus(str, Enum): OFF = 'Off' ACTIVE = 'Active' PENDING = 'Pending' CANCELLED_INSIDE_CONTRACT = 'CancelledInsideContract' CANCELLED_OUTSIDE_CONTRACT = 'CancelledOutsideContract' WITH_DEBT_RECOVERY = 'WithDebtRecovery' SUSPENDED = 'Suspended' class MemberType(str, Enum): PROSPECT = 'Prospect' ACTIVE = 'Active' CANCELLED = 'Cancelled' EXPIRED = 'Expired' SUSPENDED = 'Suspended' CLUB_CANCELLED = 'ClubCancelled' DROP_OUT = 'DropOut' class MembershipState(str, Enum): PROSPECT = 'Prospect' ACTIVE = 'Active' EXPIRED = 'Expired' CANCELLED = 'Cancelled' PAYMENT_REQUIRED = 'PaymentRequired' SUSPENDED = 'Suspended' # @Flags() class MessageTemplateContentType(IntEnum): TRANSACTIONAL = 1 MARKETING = 2 NONE = 1048576 # @Flags() class MessageTemplateType(IntEnum): SMS = 1 EMAIL = 2 TELEPHONE = 4 DIRECT_MAIL = 8 NOTIFICATION = 16 PAGE = 32 NONE = 1048576 NO_CONSENT = 2097152 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Member: member_id: int = 0 branch_id: int = 0 membership_number: Optional[str] = None joined_date: Optional[datetime.datetime] = None card_number: Optional[str] = None company_name: Optional[str] = None gender: Optional[Gender] = None gender_name: Optional[str] = None full_name: Optional[str] = None title: Optional[str] = None forenames: Optional[str] = None surname: Optional[str] = None address1: Optional[str] = None address2: Optional[str] = None county: Optional[str] = None city: Optional[str] = None home_phone: Optional[str] = None mobile_phone: Optional[str] = None email_address: Optional[str] = None external_reference: Optional[str] = None country: Optional[str] = None email_opt_out: bool = False sms_opt_out: bool = False phone_opt_out: bool = False letter_opt_out: bool = False use_external_status: bool = False external_status: Optional[ExternalStatus] = None date_of_birth: Optional[datetime.datetime] = None postcode: Optional[str] = None notes: Optional[str] = None start_date: Optional[datetime.datetime] = None expires: Optional[datetime.datetime] = None sessions_remaining: Optional[int] = None contract_end_date: Optional[datetime.datetime] = None days_remaining: int = 0 membership_type: Optional[str] = None last_attendance: Optional[datetime.datetime] = None attendance: int = 0 member_type: Optional[MemberType] = None recurring_payments: int = 0 overdue_payments: int = 0 attendance_this_week: int = 0 retention_metric: Decimal = decimal.Decimal(0) monthly_attendance_frequency: Decimal = decimal.Decimal(0) total_product_spend: Decimal = decimal.Decimal(0) journal_entry: Optional[str] = None balance: Decimal = decimal.Decimal(0) credit_limit: Decimal = decimal.Decimal(0) guid: Optional[str] = None membership_state: Optional[MembershipState] = None bookings_attended: int = 0 date_of_last_booking: Optional[datetime.datetime] = None photo_modified_date: Optional[datetime.datetime] = None created_date: Optional[datetime.datetime] = None modified_date: Optional[datetime.datetime] = None deleted_date: Optional[datetime.datetime] = None member_key: Optional[str] = None created_by_user_id: int = 0 assigned_to_user_id: int = 0 deleted_by_user_id: int = 0 gift_aid_permission: bool = False first_aid_permission: bool = False photo_permission: bool = False emergency_contact: Optional[str] = None won_or_lost: Optional[int] = None won_or_lost_date: Optional[datetime.datetime] = None won_or_lost_by_user_id: Optional[int] = None license_reference: Optional[str] = None license_start_date: Optional[datetime.datetime] = None license_renewal_date: Optional[datetime.datetime] = None agreed_to_terms: Optional[datetime.datetime] = None online_booking_banned: bool = False child_branch_id: Optional[int] = None child_branch: Optional[str] = None prospecting_points: int = 0 achievement_points: int = 0 parent_forenames: Optional[str] = None parent_surname: Optional[str] = None grading_readiness: int = 0 direct_debit_account_holder: Optional[str] = None direct_debit_account_number: Optional[str] = None direct_debit_sort_code: Optional[str] = None direct_debit_bank_address: Optional[str] = None invited_date: Optional[datetime.datetime] = None grade: Optional[str] = None colour_left: Optional[str] = None colour_right: Optional[str] = None sessions_to_complete: int = 0 unique_id: Optional[str] = None preference_link: Optional[str] = None marketing_all_link: Optional[str] = None marketing_none_link: Optional[str] = None app_registration_id: Optional[str] = None app_registration_link: Optional[str] = None app_qr_image_link: Optional[str] = None card_number_qr_image_link: Optional[str] = None photo_thumbnail_link: Optional[str] = None content_types_opt_in: Optional[MessageTemplateContentType] = None template_types_opt_in: Optional[MessageTemplateType] = None can_email: bool = False can_direct_mail: bool = False can_s_m_s: bool = False can_telephone: bool = False no_marketing_consent: bool = False can_send_invite: bool = False branch_key: Optional[str] = None sage_link: Optional[str] = None sage_last_payment_date: Optional[datetime.datetime] = None sage_first_payment_date: Optional[datetime.datetime] = None sage_last_payment_amount: Optional[Decimal] = None sage_first_payment_amount: Optional[Decimal] = None sage_total_paid: Optional[Decimal] = None # @Route("/api/Member/GetMember", "POST,GET") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetMemberRequest(IReturn[Member]): member_id: int = 0