import { Location } from '../site/types'; import { AssignedClientIndex, ClientCreditCard, ClientRelationship, SalesRep } from '../types'; export interface Client { AppointmentGenderPreference: 'None' | 'Female' | 'Male'; BirthDate: string; Country: string; CreationDate: string; CustomClientFields: (CustomClientField & { Value: string; })[]; ClientCreditCard: ClientCreditCard; ClientIndexes: AssignedClientIndex[]; ClientRelationships: ClientRelationship[]; FirstAppointmentDate: string; FirstName: string; Id: string; IsCompany: boolean; IsProspect: boolean; LastName: string; Liability: Liability; LiabilityRelease: boolean; MembershipIcon: number; Notes: string; SendAccountEmails: boolean; SendAccountTexts: boolean; SendPromotionalEmails: boolean; SendPromotionalTexts: boolean; SendScheduleEmails: boolean; SendScheduleTexts: boolean; State: string; SuspensionInfo: SuspensionInfo; UniqueId: number; LastModifiedDateTime: string; RedAlert: string; YellowAlert: string; MiddleName: string; ProspectStage: ProspectStage; Email: string; MobileProvider: string; MobilePhone: string; HomePhone: string; WorkPhone: string; AccountBalance: number; AddressLine1: string; AddressLine2: string; City: string; PostalCode: string; WorkExtension: string; ReferredBy: string; PhotoUrl: string; EmergencyContactInfoName: string; EmergencyContactInfoEmail: string; EmergencyContactInfoPhone: string; EmergencyContactInfoRelationship: string; Gender: string; LastFormulaNotes: string; Active: boolean; SalesReps: SalesRep[]; Status: 'Declined' | 'Non-Member' | 'Active ' | 'Expired' | 'Suspended' | 'Terminated'; Action: 'None' | 'Added' | 'Updated' | 'Failed' | 'Removed'; } export interface CustomClientField { Id: number; DataType: string; Name: string; } export interface Liability { AgreementDate: string; IsReleased: boolean; ReleasedBy: number; } export interface SuspensionInfo { BookingSuspended: boolean; SuspensionStartDate: string; SuspensionEndDate: string; } export interface ProspectStage { Active: boolean; Description: string; Id: number; } export interface GetClientsParameters { ClientIds?: string[]; SearchText?: string; UniqueIds?: number[]; IsProspect?: boolean; LastModifiedDate?: string; IncludeInactive?: boolean; } export interface GetClientServicesParameters { ClientId: string; ClassId?: number; ProgramIds?: number[]; SessionTypeId?: number; LocationIds?: number[]; VisitCount?: number; StartDate?: string; EndDate?: string; ShowActiveOnly?: boolean; CrossRegionalLookup?: boolean; ClientAssociatedSitesOffset?: number; } export interface GetClientVisitsParameters { ClientId: string; ClientAssociatedSitesOffset?: number; CrossRegionalLookup?: boolean; EndDate?: string; StartDate?: string; UnpaidsOnly?: boolean; } export interface AddClientParameters { AccountBalance?: number; Action?: 'None' | 'Added' | 'Updated' | 'Failed' | 'Removed'; AddressLine1?: string; AddressLine2?: string; ApptGenderPrefMale?: boolean; BirthDate?: string; City?: string; ClientCreditCard?: ClientCreditCard; ClientIndexes?: AssignedClientIndex[]; ClientRelationships?: ClientRelationship[]; Country?: string; CreationDate?: string; CustomClientFields?: (CustomClientField & { Value: string; })[]; Email?: string; EmergencyContactInfoEmail?: string; EmergencyContactInfoName?: string; EmergencyContactInfoPhone?: string; EmergencyContactInfoRelationship?: string; FirstAppointmentDate?: string; FirstName: string; Gender?: string; HomeLocation?: Location; HomePhone?: string; IsCompany?: boolean; IsProspect?: boolean; LastFormulaNotes?: string; LastModifiedDateTime?: string; LastName: string; Liability?: Liability; LiabilityRelease?: boolean; MembershipIcon?: number; MiddleName?: string; MobilePhone?: string; NewId?: string; Notes?: string; PhotoUrl?: string; PostalCode?: string; ProspectStage?: ProspectStage; RedAlert?: string; ReferredBy?: string; SalesReps?: SalesRep; SendAccountEmails?: boolean; SendScheduleEmails?: boolean; SendPromotionalEmails?: boolean; SiteId?: number; State?: string; Status?: string; Test?: boolean; UniqueId?: number; WorkExtension?: string; WorkPhone?: string; YellowAlert?: string; } export interface SendPasswordResetEmailParameters { UserEmail: string; UserFirstName: string; UserLastName: string; } export interface UpdateClientParameters { Client: Partial & { Id: string; }; CrossRegionalUpdate?: boolean; NewId?: string; Test?: boolean; }