@gymspace/sdk 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/errors.ts","../src/client.ts","../src/resources/base.ts","../src/resources/auth.ts","../src/resources/organizations.ts","../src/resources/gyms.ts","../src/resources/clients.ts","../src/resources/membership-plans.ts","../src/resources/contracts.ts","../src/resources/dashboard.ts","../src/resources/evaluations.ts","../src/resources/check-ins.ts","../src/resources/invitations.ts","../src/resources/leads.ts","../src/resources/assets.ts","../src/resources/files.ts","../src/resources/public-catalog.ts","../src/resources/health.ts","../src/resources/onboarding.ts","../src/resources/products.ts","../src/resources/sales.ts","../src/resources/suppliers.ts","../src/resources/users.ts","../src/resources/subscriptions.ts","../src/resources/payment-methods.ts","../src/sdk.ts","../../../node_modules/@gymspace/shared/src/enums.ts","../../../node_modules/@gymspace/shared/src/constants.ts","../src/models/onboarding.ts"],"names":["axios","UserType","SubscriptionStatus","CollaboratorStatus","InvitationStatus","ClientStatus","PlanStatus","ContractStatus","PaymentFrequency","AssetStatus","EvaluationType","EvaluationStatus","CommentType","AssetCategory","ContractAssetType","EvaluationAssetStage","EvaluationAssetCategory","LeadStatus","OnboardingStep"],"mappings":"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","file":"index.js","sourcesContent":["export class GymSpaceError extends Error {\n constructor(\n message: string,\n public statusCode?: number,\n public code?: string,\n public details?: any\n ) {\n super(message);\n this.name = 'GymSpaceError';\n }\n}\n\nexport class AuthenticationError extends GymSpaceError {\n constructor(message = 'Authentication failed') {\n super(message, 401, 'AUTHENTICATION_ERROR');\n this.name = 'AuthenticationError';\n }\n}\n\nexport class AuthorizationError extends GymSpaceError {\n constructor(message = 'Access denied') {\n super(message, 403, 'AUTHORIZATION_ERROR');\n this.name = 'AuthorizationError';\n }\n}\n\nexport class NotFoundError extends GymSpaceError {\n constructor(resource: string, id?: string) {\n const message = id \n ? `${resource} with id ${id} not found`\n : `${resource} not found`;\n super(message, 404, 'NOT_FOUND');\n this.name = 'NotFoundError';\n }\n}\n\nexport class ValidationError extends GymSpaceError {\n constructor(message: string, errors?: any) {\n super(message, 400, 'VALIDATION_ERROR', errors);\n this.name = 'ValidationError';\n }\n}\n\nexport class NetworkError extends GymSpaceError {\n constructor(message = 'Network request failed') {\n super(message, 0, 'NETWORK_ERROR');\n this.name = 'NetworkError';\n }\n}","import axios, {\n AxiosInstance,\n AxiosRequestConfig,\n AxiosError,\n InternalAxiosRequestConfig,\n AxiosRequestHeaders,\n} from 'axios';\nimport { GymSpaceConfig, RequestOptions } from './types';\nimport {\n GymSpaceError,\n AuthenticationError,\n AuthorizationError,\n NotFoundError,\n ValidationError,\n NetworkError,\n} from './errors';\n\nexport class ApiClient {\n private axiosInstance: AxiosInstance;\n private config: GymSpaceConfig;\n\n constructor(config: GymSpaceConfig) {\n this.config = config;\n\n this.axiosInstance = axios.create({\n baseURL: config.baseURL,\n timeout: config.timeout || 30000,\n headers: {\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n });\n\n this.setupInterceptors();\n }\n\n private setupInterceptors(): void {\n // Request interceptor\n this.axiosInstance.interceptors.request.use(\n (config: InternalAxiosRequestConfig) => {\n // Add Authorization header if auth token is configured\n if (this.config.apiKey && config.headers) {\n config.headers['Authorization'] = `Bearer ${this.config.apiKey}`;\n }\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n },\n );\n\n // Response interceptor - simplified without automatic token refresh\n this.axiosInstance.interceptors.response.use(\n (response) => {\n return response;\n },\n async (error: AxiosError) => {\n // Simply throw the error - no automatic refresh attempts\n throw this.handleError(error);\n },\n );\n }\n\n\n private handleError(error: AxiosError): GymSpaceError {\n const requestPath = error.config?.url || 'unknown';\n const method = error.config?.method?.toUpperCase() || 'unknown';\n\n if (!error.response) {\n console.error('Network Error:', {\n method,\n path: requestPath,\n error: error.message,\n });\n return new NetworkError(error.message);\n }\n\n const { status, data } = error.response;\n const errorData = data as any;\n const resource = errorData?.resource || 'unknown';\n\n console.error('HTTP Error:', {\n method,\n path: requestPath,\n status,\n resource,\n message: errorData?.message || error.message,\n errorCode: errorData?.code,\n details: errorData,\n });\n\n switch (status) {\n case 401:\n return new AuthenticationError(errorData?.message || 'Authentication failed');\n case 403:\n return new AuthorizationError(errorData?.message || 'Access denied');\n case 404:\n return new NotFoundError(errorData?.resource || 'Resource', errorData?.id);\n case 400:\n return new ValidationError(errorData?.message || 'Validation failed', errorData?.errors);\n default:\n return new GymSpaceError(\n errorData?.message || error.message,\n status,\n errorData?.code,\n errorData,\n );\n }\n }\n\n private mergeOptions(options?: RequestOptions): AxiosRequestConfig {\n const headers: Record<string, string> = { ...options?.headers };\n\n if (options?.gymId) {\n headers['X-Gym-Id'] = options.gymId;\n }\n\n return { headers };\n }\n\n async request<T>(\n method: string,\n path: string,\n data?: any,\n options?: RequestOptions & AxiosRequestConfig,\n ): Promise<T> {\n const { headers, ...axiosConfig } = options || {};\n\n const config: AxiosRequestConfig = {\n method,\n url: path,\n ...this.mergeOptions({ headers }),\n ...axiosConfig,\n };\n\n if (data && ['POST', 'PUT', 'PATCH'].includes(method.toUpperCase())) {\n config.data = data;\n } else if (data && method.toUpperCase() === 'GET') {\n config.params = data;\n }\n\n const response = await this.axiosInstance.request<T>(config);\n return response.data;\n }\n\n get<T>(path: string, params?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('GET', path, params, options);\n }\n\n post<T>(path: string, data?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('POST', path, data, options);\n }\n\n put<T>(path: string, data?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('PUT', path, data, options);\n }\n\n patch<T>(path: string, data?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('PATCH', path, data, options);\n }\n\n delete<T>(path: string, options?: RequestOptions): Promise<T> {\n return this.request<T>('DELETE', path, undefined, options);\n }\n\n setAuthToken(token: string): void {\n this.config.apiKey = token;\n }\n\n setGymId(gymId: string): void {\n this.axiosInstance.defaults.headers.common['X-Gym-Id'] = gymId;\n }\n\n clearAuth(): void {\n delete this.config.apiKey;\n delete this.axiosInstance.defaults.headers.common['Authorization'];\n delete this.axiosInstance.defaults.headers.common['X-Gym-Id'];\n }\n\n getBaseUrl(): string {\n return this.config.baseURL;\n }\n}\n","import { ApiClient } from '../client';\nimport { RequestOptions, PaginatedResponseDto, PaginationQueryDto } from '../types';\n\nexport abstract class BaseResource {\n constructor(protected client: ApiClient) {}\n\n protected async request<T>(\n path: string,\n options: {\n method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\n body?: string;\n headers?: Record<string, string>;\n }\n ): Promise<T> {\n const data = options.body ? JSON.parse(options.body) : undefined;\n \n switch (options.method) {\n case 'GET':\n return this.client.get<T>(path, data, { headers: options.headers });\n case 'POST':\n return this.client.post<T>(path, data, { headers: options.headers });\n case 'PUT':\n return this.client.put<T>(path, data, { headers: options.headers });\n case 'PATCH':\n return this.client.patch<T>(path, data, { headers: options.headers });\n case 'DELETE':\n return this.client.delete<T>(path, { headers: options.headers });\n default:\n throw new Error(`Unsupported HTTP method: ${options.method}`);\n }\n }\n\n protected buildPath(base: string, ...segments: (string | undefined)[]): string {\n const parts = [base];\n for (const segment of segments) {\n if (segment !== undefined) {\n parts.push(segment);\n }\n }\n return parts.join('/');\n }\n\n protected async paginate<T>(\n path: string,\n params?: PaginationQueryDto & Record<string, any>,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<T>> {\n return this.client.get<PaginatedResponseDto<T>>(path, params, options);\n }\n}","import {\n CurrentSessionResponse,\n InvitationValidationResponse,\n LoginDto,\n LoginResponseDto,\n RegisterCollaboratorDto,\n RegisterOwnerDto,\n ResendVerificationDto,\n VerifyEmailDto,\n ChangePasswordDto,\n ChangePasswordResponseDto,\n RequestPasswordResetDto,\n RequestPasswordResetResponseDto,\n VerifyResetCodeDto,\n VerifyResetCodeResponseDto,\n ResetPasswordDto,\n ResetPasswordResponseDto,\n ResendResetCodeDto,\n ResendResetCodeResponseDto,\n} from '../models/auth';\nimport { SubscriptionPlan } from '../models/subscriptions';\nimport { RequestOptions } from '../types';\nimport { BaseResource } from './base';\n\nexport class AuthResource extends BaseResource {\n private basePath = 'auth';\n\n async registerOwner(data: RegisterOwnerDto, options?: RequestOptions): Promise<void> {\n return this.client.post(`${this.basePath}/register/owner`, data, options);\n }\n\n async login(data: LoginDto, options?: RequestOptions): Promise<LoginResponseDto> {\n return this.client.post<LoginResponseDto>(`${this.basePath}/login`, data, options);\n }\n\n async refreshToken(refreshToken: string, options?: RequestOptions): Promise<LoginResponseDto> {\n return this.client.post<LoginResponseDto>(`${this.basePath}/refresh`, { refresh_token: refreshToken }, options);\n }\n\n async verifyEmail(\n data: VerifyEmailDto,\n options?: RequestOptions,\n ): Promise<{ success: boolean; message: string }> {\n return this.client.post(`${this.basePath}/verify-email`, data, options);\n }\n\n async resendVerification(\n data: ResendVerificationDto,\n options?: RequestOptions,\n ): Promise<{ success: boolean; message: string }> {\n console.log('the path', `${this.basePath}/resend-verification`);\n\n return this.client.post(`${this.basePath}/resend-verification`, data, options);\n }\n\n\n async getSubscriptionPlans(options?: RequestOptions): Promise<{ data: SubscriptionPlan[] }> {\n return this.client.get(`${this.basePath}/subscription-plans`, options);\n }\n\n async validateInvitation(\n token: string,\n options?: RequestOptions,\n ): Promise<InvitationValidationResponse> {\n return this.client.get(`${this.basePath}/invitation/${token}`, options);\n }\n\n async registerCollaborator(\n data: RegisterCollaboratorDto,\n options?: RequestOptions,\n ): Promise<LoginResponseDto> {\n return this.client.post<LoginResponseDto>(\n `${this.basePath}/register/collaborator`,\n data,\n options,\n );\n }\n\n async getCurrentSession(options?: RequestOptions): Promise<CurrentSessionResponse> {\n return this.client.get<CurrentSessionResponse>(`${this.basePath}/current-session`, options);\n }\n\n async changePassword(\n data: ChangePasswordDto,\n options?: RequestOptions,\n ): Promise<ChangePasswordResponseDto> {\n return this.client.post<ChangePasswordResponseDto>(\n `${this.basePath}/change-password`,\n data,\n options,\n );\n }\n\n async requestPasswordReset(\n data: RequestPasswordResetDto,\n options?: RequestOptions,\n ): Promise<RequestPasswordResetResponseDto> {\n return this.client.post<RequestPasswordResetResponseDto>(\n `${this.basePath}/password-reset/request`,\n data,\n options,\n );\n }\n\n async verifyResetCode(\n data: VerifyResetCodeDto,\n options?: RequestOptions,\n ): Promise<VerifyResetCodeResponseDto> {\n return this.client.post<VerifyResetCodeResponseDto>(\n `${this.basePath}/password-reset/verify-code`,\n data,\n options,\n );\n }\n\n async resetPassword(\n data: ResetPasswordDto,\n options?: RequestOptions,\n ): Promise<ResetPasswordResponseDto> {\n return this.client.post<ResetPasswordResponseDto>(\n `${this.basePath}/password-reset/reset`,\n data,\n options,\n );\n }\n\n async resendResetCode(\n data: ResendResetCodeDto,\n options?: RequestOptions,\n ): Promise<ResendResetCodeResponseDto> {\n return this.client.post<ResendResetCodeResponseDto>(\n `${this.basePath}/password-reset/resend-code`,\n data,\n options,\n );\n }\n}\n","import { BaseResource } from './base';\nimport { Organization, UpdateOrganizationDto, OrganizationStats, OrganizationWithDetails } from '../models/organizations';\nimport { RequestOptions } from '../types';\n\nexport class OrganizationsResource extends BaseResource {\n private basePath = 'organizations';\n\n async getOrganization(id: string, options?: RequestOptions): Promise<Organization> {\n return this.client.get<Organization>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateOrganization(\n id: string, \n data: UpdateOrganizationDto, \n options?: RequestOptions\n ): Promise<Organization> {\n return this.client.put<Organization>(`${this.basePath}/${id}`, data, options);\n }\n\n async getOrganizationStats(id: string, options?: RequestOptions): Promise<OrganizationStats> {\n return this.client.get<OrganizationStats>(`${this.basePath}/${id}/stats`, undefined, options);\n }\n\n async listOrganizations(options?: RequestOptions): Promise<OrganizationWithDetails[]> {\n return this.client.get<OrganizationWithDetails[]>(`${this.basePath}/list`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport { Gym, CreateGymDto, UpdateGymDto, GymStats, UpdateGymScheduleDto, UpdateGymSocialMediaDto } from '../models/gyms';\nimport { RequestOptions } from '../types';\n\nexport class GymsResource extends BaseResource {\n private basePath = 'gyms';\n\n async createGym(\n data: CreateGymDto, \n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.post<Gym>(\n this.basePath, \n data, \n options\n );\n }\n\n async getOrganizationGyms(\n options?: RequestOptions\n ): Promise<Gym[]> {\n return this.client.get<Gym[]>(\n this.basePath,\n undefined,\n options\n );\n }\n\n async getGym(id: string, options?: RequestOptions): Promise<Gym> {\n return this.client.get<Gym>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateGym(\n id: string,\n data: UpdateGymDto,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}`, data, options);\n }\n\n async getGymStats(id: string, options?: RequestOptions): Promise<GymStats> {\n return this.client.get<GymStats>(`${this.basePath}/${id}/stats`, undefined, options);\n }\n\n async toggleGymStatus(id: string, options?: RequestOptions): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}/toggle-status`, undefined, options);\n }\n\n async updateCurrentGym(\n data: Partial<{\n name?: string;\n address?: string;\n phone?: string;\n email?: string;\n assetId?: string;\n }>,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/current`, data, options);\n }\n\n async updateGymSchedule(\n id: string,\n data: UpdateGymScheduleDto,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}/schedule`, data, options);\n }\n\n async updateGymSocialMedia(\n id: string,\n data: UpdateGymSocialMediaDto,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}/social-media`, data, options);\n }\n}","import { BaseResource } from './base';\nimport { \n Client, \n CreateClientDto, \n UpdateClientDto, \n ClientStats,\n ClientStat,\n SearchClientsParams,\n ClientSearchForCheckInResponse\n} from '../models/clients';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class ClientsResource extends BaseResource {\n private basePath = 'clients';\n\n async createClient(data: CreateClientDto, options?: RequestOptions): Promise<Client> {\n return this.client.post<Client>(this.basePath, data, options);\n }\n\n async searchClients(\n params?: SearchClientsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Client>> {\n \n return this.paginate<Client>(this.basePath, params, options);\n }\n\n async getClient(id: string, options?: RequestOptions): Promise<Client> {\n return this.client.get<Client>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateClient(\n id: string,\n data: UpdateClientDto,\n options?: RequestOptions\n ): Promise<Client> {\n return this.client.put<Client>(`${this.basePath}/${id}`, data, options);\n }\n\n async toggleClientStatus(id: string, options?: RequestOptions): Promise<Client> {\n return this.client.put<Client>(`${this.basePath}/${id}/toggle-status`, undefined, options);\n }\n\n async getClientStats(id: string, options?: RequestOptions): Promise<ClientStats> {\n return this.client.get<ClientStats>(`${this.basePath}/${id}/stats`, undefined, options);\n }\n\n async getClientStat(id: string, statKey: string, options?: RequestOptions): Promise<ClientStat> {\n return this.client.get<ClientStat>(`${this.basePath}/${id}/stats/${statKey}`, undefined, options);\n }\n\n async getClientStatsByCategory(id: string, category: string, options?: RequestOptions): Promise<ClientStat[]> {\n return this.client.get<ClientStat[]>(`${this.basePath}/${id}/stats/category/${category}`, undefined, options);\n }\n\n async getAvailableStats(options?: RequestOptions): Promise<ClientStat[]> {\n return this.client.get<ClientStat[]>(`${this.basePath}/stats/available`, undefined, options);\n }\n\n async searchClientsForCheckIn(\n params?: SearchClientsParams,\n options?: RequestOptions\n ): Promise<ClientSearchForCheckInResponse> {\n // This endpoint automatically includes contract status and only active clients\n return this.client.get<ClientSearchForCheckInResponse>(\n `${this.basePath}/search/check-in`,\n params,\n options\n );\n }\n}","import { BaseResource } from './base';\nimport { \n MembershipPlan, \n CreateMembershipPlanDto, \n UpdateMembershipPlanDto, \n MembershipPlanStats,\n GetMembershipPlansParams \n} from '../models/membership-plans';\nimport { RequestOptions } from '../types';\n\nexport class MembershipPlansResource extends BaseResource {\n private basePath = 'membership-plans';\n\n async createMembershipPlan(\n data: CreateMembershipPlanDto, \n options?: RequestOptions\n ): Promise<MembershipPlan> {\n return this.client.post<MembershipPlan>(this.basePath, data, options);\n }\n\n async getGymMembershipPlans(\n params?: GetMembershipPlansParams,\n options?: RequestOptions\n ): Promise<MembershipPlan[]> {\n return this.client.get<MembershipPlan[]>(this.basePath, params, options);\n }\n\n async getMembershipPlan(id: string, options?: RequestOptions): Promise<MembershipPlan> {\n return this.client.get<MembershipPlan>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateMembershipPlan(\n id: string,\n data: UpdateMembershipPlanDto,\n options?: RequestOptions\n ): Promise<MembershipPlan> {\n return this.client.put<MembershipPlan>(`${this.basePath}/${id}`, data, options);\n }\n\n async deleteMembershipPlan(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getMembershipPlanStats(\n id: string, \n options?: RequestOptions\n ): Promise<MembershipPlanStats> {\n return this.client.get<MembershipPlanStats>(\n `${this.basePath}/${id}/stats`, \n undefined, \n options\n );\n }\n}","import { BaseResource } from './base';\nimport { \n Contract, \n CreateContractDto, \n RenewContractDto, \n FreezeContractDto,\n GetContractsParams \n} from '../models/contracts';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class ContractsResource extends BaseResource {\n private basePath = 'contracts';\n\n async createContract(data: CreateContractDto, options?: RequestOptions): Promise<Contract> {\n return this.client.post<Contract>(this.basePath, data, options);\n }\n\n async getGymContracts(\n params?: GetContractsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Contract>> {\n return this.paginate<Contract>(this.basePath, params, options);\n }\n\n async getContract(id: string, options?: RequestOptions): Promise<Contract> {\n return this.client.get<Contract>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async getClientContracts(\n clientId: string,\n options?: RequestOptions\n ): Promise<Contract[]> {\n return this.client.get<Contract[]>(\n `${this.basePath}/client/${clientId}`, \n undefined, \n options\n );\n }\n\n async renewContract(\n id: string,\n data: RenewContractDto,\n options?: RequestOptions\n ): Promise<Contract> {\n return this.client.post<Contract>(`${this.basePath}/${id}/renew`, data, options);\n }\n\n async freezeContract(\n id: string,\n data: FreezeContractDto,\n options?: RequestOptions\n ): Promise<Contract> {\n return this.client.post<Contract>(`${this.basePath}/${id}/freeze`, data, options);\n }\n\n async cancelContract(id: string, data: { reason: string }, options?: RequestOptions): Promise<Contract> {\n return this.client.put<Contract>(`${this.basePath}/${id}/cancel`, data, options);\n }\n}","import { BaseResource } from './base';\nimport {\n DashboardStats,\n ExpiringContract,\n ContractsRevenue,\n SalesRevenue,\n Debts,\n CheckIns,\n NewClients,\n DateRangeParams,\n} from '../models/dashboard';\n\nexport class DashboardResource extends BaseResource {\n /**\n * Get dashboard statistics (lightweight counts only)\n * @returns Dashboard statistics including client and contract counts\n */\n async getStats(): Promise<DashboardStats> {\n return this.client.get<DashboardStats>('/dashboard/stats');\n }\n\n /**\n * Get contracts revenue within date range\n * @param params Optional date range parameters\n * @returns Contracts revenue data for the specified period\n */\n async getContractsRevenue(params?: DateRangeParams): Promise<ContractsRevenue> {\n return this.client.get<ContractsRevenue>('/dashboard/contracts-revenue', params);\n }\n\n /**\n * Get sales revenue within date range\n * @param params Optional date range parameters\n * @returns Sales revenue data for the specified period\n */\n async getSalesRevenue(params?: DateRangeParams): Promise<SalesRevenue> {\n return this.client.get<SalesRevenue>('/dashboard/sales-revenue', params);\n }\n\n /**\n * Get total debts within date range\n * @param params Optional date range parameters\n * @returns Outstanding debts data for the specified period\n */\n async getDebts(params?: DateRangeParams): Promise<Debts> {\n return this.client.get<Debts>('/dashboard/debts', params);\n }\n\n /**\n * Get check-ins count within date range\n * @param params Optional date range parameters\n * @returns Check-ins data for the specified period\n */\n async getCheckIns(params?: DateRangeParams): Promise<CheckIns> {\n return this.client.get<CheckIns>('/dashboard/check-ins', params);\n }\n\n /**\n * Get new clients count within date range\n * @param params Optional date range parameters\n * @returns New clients data for the specified period\n */\n async getNewClients(params?: DateRangeParams): Promise<NewClients> {\n return this.client.get<NewClients>('/dashboard/new-clients', params);\n }\n\n /**\n * Get expiring contracts within date range\n * @param limit Maximum number of contracts to return (default: 10)\n * @param params Optional date range parameters\n * @returns List of contracts expiring in the specified period\n */\n async getExpiringContracts(\n limit: number = 10,\n params?: DateRangeParams,\n ): Promise<ExpiringContract[]> {\n return this.client.get<ExpiringContract[]>('/dashboard/expiring-contracts', {\n limit,\n ...params,\n });\n }\n}","import { BaseResource } from './base';\nimport { \n Evaluation, \n CreateEvaluationDto, \n UpdateEvaluationDto,\n GetClientEvaluationsParams,\n EvaluationReport\n} from '../models/evaluations';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class EvaluationsResource extends BaseResource {\n private basePath = 'evaluations';\n\n async createEvaluation(\n data: CreateEvaluationDto, \n options?: RequestOptions\n ): Promise<Evaluation> {\n return this.client.post<Evaluation>(this.basePath, data, options);\n }\n\n async getEvaluation(id: string, options?: RequestOptions): Promise<Evaluation> {\n return this.client.get<Evaluation>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateEvaluation(\n id: string,\n data: UpdateEvaluationDto,\n options?: RequestOptions\n ): Promise<Evaluation> {\n return this.client.put<Evaluation>(`${this.basePath}/${id}`, data, options);\n }\n\n async deleteEvaluation(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getClientEvaluations(\n clientId: string,\n params?: GetClientEvaluationsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Evaluation>> {\n return this.paginate<Evaluation>(\n `${this.basePath}/client/${clientId}`,\n params,\n options\n );\n }\n\n async getGymEvaluationStats(options?: RequestOptions): Promise<any> {\n return this.client.get(`${this.basePath}/gym/stats`, undefined, options);\n }\n\n async generateEvaluationReport(\n id: string,\n options?: RequestOptions\n ): Promise<EvaluationReport> {\n return this.client.get<EvaluationReport>(\n `${this.basePath}/${id}/report`,\n undefined,\n options\n );\n }\n}","import { BaseResource } from './base';\nimport { \n CheckIn, \n CreateCheckInDto, \n SearchCheckInsParams,\n GetCheckInStatsParams,\n CheckInStats,\n GetClientCheckInHistoryParams,\n CurrentlyInGymResponse,\n CheckInListResponse,\n ClientCheckInHistory\n} from '../models/check-ins';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class CheckInsResource extends BaseResource {\n private basePath = 'check-ins';\n\n async createCheckIn(data: CreateCheckInDto, options?: RequestOptions): Promise<CheckIn> {\n return this.client.post<CheckIn>(this.basePath, data, options);\n }\n\n async searchCheckIns(\n params?: SearchCheckInsParams,\n options?: RequestOptions\n ): Promise<CheckInListResponse> {\n return this.client.get<CheckInListResponse>(this.basePath, params, options);\n }\n\n async getCurrentlyInGym(options?: RequestOptions): Promise<CurrentlyInGymResponse> {\n return this.client.get<CurrentlyInGymResponse>(`${this.basePath}/current`, undefined, options);\n }\n\n async getCheckIn(id: string, options?: RequestOptions): Promise<CheckIn> {\n return this.client.get<CheckIn>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async deleteCheckIn(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getGymCheckInStats(\n params: GetCheckInStatsParams,\n options?: RequestOptions\n ): Promise<CheckInStats> {\n return this.client.get<CheckInStats>(\n `${this.basePath}/stats/${params.period}`,\n undefined,\n options\n );\n }\n\n async getClientCheckInHistory(\n clientId: string,\n params?: GetClientCheckInHistoryParams,\n options?: RequestOptions\n ): Promise<ClientCheckInHistory> {\n return this.client.get<ClientCheckInHistory>(\n `${this.basePath}/client/${clientId}/history`,\n params,\n options\n );\n }\n}","import { BaseResource } from './base';\nimport { \n Invitation, \n CreateInvitationDto, \n AcceptInvitationDto,\n GetGymInvitationsParams \n} from '../models/invitations';\nimport { RequestOptions } from '../types';\n\nexport class InvitationsResource extends BaseResource {\n private basePath = 'invitations';\n\n async createInvitation(\n data: CreateInvitationDto, \n options?: RequestOptions\n ): Promise<Invitation> {\n return this.client.post<Invitation>(this.basePath, data, options);\n }\n\n async getGymInvitations(\n params: GetGymInvitationsParams,\n options?: RequestOptions\n ): Promise<Invitation[]> {\n return this.client.get<Invitation[]>(this.basePath, params, options);\n }\n\n async acceptInvitation(\n token: string,\n data: AcceptInvitationDto,\n options?: RequestOptions\n ): Promise<void> {\n return this.client.post<void>(`${this.basePath}/${token}/accept`, data, options);\n }\n\n async cancelInvitation(id: string, options?: RequestOptions): Promise<void> {\n return this.client.put<void>(`${this.basePath}/${id}/cancel`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport { \n Lead, \n CreateLeadDto, \n UpdateLeadDto,\n SearchLeadsParams,\n LeadStats \n} from '../models/leads';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class LeadsResource extends BaseResource {\n private basePath = 'leads';\n\n async createLead(data: CreateLeadDto, options?: RequestOptions): Promise<Lead> {\n return this.client.post<Lead>(this.basePath, data, options);\n }\n\n async searchLeads(\n params?: SearchLeadsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Lead>> {\n return this.paginate<Lead>(this.basePath, params, options);\n }\n\n async getLead(id: string, options?: RequestOptions): Promise<Lead> {\n return this.client.get<Lead>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateLead(\n id: string,\n data: UpdateLeadDto,\n options?: RequestOptions\n ): Promise<Lead> {\n return this.client.put<Lead>(`${this.basePath}/${id}`, data, options);\n }\n\n async getLeadStats(options?: RequestOptions): Promise<LeadStats> {\n return this.client.get<LeadStats>(`${this.basePath}/stats/gym`, undefined, options);\n }\n\n async convertLead(id: string, options?: RequestOptions): Promise<{ clientId: string }> {\n return this.client.post<{ clientId: string }>(\n `${this.basePath}/${id}/convert`,\n undefined,\n options\n );\n }\n}","import { BaseResource } from './base';\nimport type { AssetResponseDto } from '../models/assets';\n\nexport class AssetsResource extends BaseResource {\n /**\n * Upload a new asset\n */\n async upload(data: {\n file: File;\n description?: string;\n metadata?: Record<string, any>;\n }): Promise<AssetResponseDto> {\n const formData = new FormData();\n formData.append('file', data.file);\n\n if (data.description) {\n formData.append('description', data.description);\n }\n\n if (data.metadata) {\n formData.append('metadata', JSON.stringify(data.metadata));\n }\n\n return await this.client.post<AssetResponseDto>('/assets/upload', formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n });\n }\n\n /**\n * Get a single asset by ID\n */\n async findOne(id: string): Promise<AssetResponseDto> {\n return await this.client.get<AssetResponseDto>(`/assets/${id}`);\n }\n\n /**\n * Get multiple assets by IDs\n */\n async findByIds(ids: string[]): Promise<AssetResponseDto[]> {\n if (!ids || ids.length === 0) {\n return [];\n }\n\n // El segundo parámetro del get son los params directamente\n return await this.client.get<AssetResponseDto[]>('/assets/by-ids', {\n ids: ids.join(',')\n });\n }\n\n /**\n * Get all assets for the current gym\n */\n async findAll(): Promise<AssetResponseDto[]> {\n return await this.client.get<AssetResponseDto[]>('/assets');\n }\n\n /**\n * Delete an asset\n */\n async delete(id: string): Promise<void> {\n await this.client.delete(`/assets/${id}`);\n }\n\n /**\n * Get a signed download URL for an asset\n */\n async getDownloadUrl(id: string): Promise<{ url: string; filename: string }> {\n return await this.client.get<{ url: string; filename: string }>(`/assets/${id}/download-url`);\n }\n\n /**\n * Download an asset as a blob\n */\n async download(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/assets/${id}/download`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n\n /**\n * Get the render URL for an asset (for inline display)\n * This returns the URL directly without making an API call\n */\n getRenderUrl(id: string): string {\n return `${this.client.getBaseUrl()}/assets/${id}/render`;\n }\n\n /**\n * Get asset blob for rendering/preview\n */\n async render(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/assets/${id}/render`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n}\n","import { BaseResource } from './base';\nimport type { FileResponseDto } from '../models/files';\n\nexport class FilesResource extends BaseResource {\n /**\n * Upload a new file\n */\n async upload(data: {\n file: File;\n description?: string;\n metadata?: Record<string, any>;\n }): Promise<FileResponseDto> {\n const formData = new FormData();\n formData.append('file', data.file);\n\n if (data.description) {\n formData.append('description', data.description);\n }\n\n if (data.metadata) {\n formData.append('metadata', JSON.stringify(data.metadata));\n }\n\n return await this.client.post<FileResponseDto>('/files/upload', formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n });\n }\n\n /**\n * Get all files for the current user\n */\n async findAll(): Promise<FileResponseDto[]> {\n return await this.client.get<FileResponseDto[]>('/files');\n }\n\n /**\n * Get a single file by ID\n */\n async findOne(id: string): Promise<FileResponseDto> {\n return await this.client.get<FileResponseDto>(`/files/${id}`);\n }\n\n /**\n * Get multiple files by IDs\n */\n async findByIds(ids: string[]): Promise<FileResponseDto[]> {\n if (!ids || ids.length === 0) {\n return [];\n }\n\n // The second parameter of get is the params directly\n return await this.client.get<FileResponseDto[]>('/files/by-ids', {\n ids: ids.join(',')\n });\n }\n\n /**\n * Delete a file\n */\n async delete(id: string): Promise<void> {\n await this.client.delete(`/files/${id}`);\n }\n\n /**\n * Download a file as a blob\n */\n async download(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/files/${id}/download`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n\n /**\n * Get the render URL for a file (for inline display)\n * This returns the URL directly without making an API call\n */\n getRenderUrl(id: string): string {\n return `${this.client.getBaseUrl()}/files/${id}/render`;\n }\n\n /**\n * Get file blob for rendering/preview\n */\n async render(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/files/${id}/render`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n}","import { BaseResource } from './base';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\nimport { PaginationQueryDto } from '../types';\n\nexport interface SearchCatalogParams extends PaginationQueryDto {\n search?: string;\n city?: string;\n state?: string;\n latitude?: string;\n longitude?: string;\n radius?: string;\n}\n\nexport interface GetFeaturedGymsParams {\n limit: string;\n}\n\nexport interface CatalogGym {\n id: string;\n name: string;\n slug: string;\n address?: string;\n city?: string;\n state?: string;\n phone?: string;\n email?: string;\n amenities?: any;\n settings?: any;\n}\n\nexport interface CityWithGyms {\n city: string;\n state: string;\n count: number;\n}\n\nexport class PublicCatalogResource extends BaseResource {\n private basePath = 'catalog';\n\n async searchCatalog(\n params?: SearchCatalogParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<CatalogGym>> {\n return this.paginate<CatalogGym>(`${this.basePath}/search`, params, options);\n }\n\n async getFeaturedGyms(\n params: GetFeaturedGymsParams,\n options?: RequestOptions\n ): Promise<CatalogGym[]> {\n return this.client.get<CatalogGym[]>(`${this.basePath}/featured`, params, options);\n }\n\n async getCitiesWithGyms(options?: RequestOptions): Promise<CityWithGyms[]> {\n return this.client.get<CityWithGyms[]>(`${this.basePath}/cities`, undefined, options);\n }\n\n async getGymBySlug(slug: string, options?: RequestOptions): Promise<CatalogGym> {\n return this.client.get<CatalogGym>(`${this.basePath}/${slug}`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport { RequestOptions } from '../types';\n\nexport interface HealthResponse {\n status: string;\n timestamp: string;\n}\n\nexport interface ReadyResponse {\n status: string;\n services: {\n database: boolean;\n cache: boolean;\n storage: boolean;\n };\n}\n\nexport class HealthResource extends BaseResource {\n private basePath = 'health';\n\n async health(options?: RequestOptions): Promise<HealthResponse> {\n return this.client.get<HealthResponse>(this.basePath, undefined, options);\n }\n\n async ready(options?: RequestOptions): Promise<ReadyResponse> {\n return this.client.get<ReadyResponse>(`${this.basePath}/ready`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport {\n StartOnboardingData,\n StartOnboardingResponse,\n UpdateGymSettingsData,\n ConfigureFeaturesData,\n CompleteGuidedSetupData,\n OnboardingStatus,\n OnboardingResponse,\n} from '../models/onboarding';\n\nexport class OnboardingResource extends BaseResource {\n /**\n * Creates owner account, organization, and initial gym\n * Now also sends verification and organization codes via email\n */\n async start(data: StartOnboardingData): Promise<StartOnboardingResponse> {\n const response = await this.client.post<StartOnboardingResponse>('/onboarding/start', data);\n \n // Store tokens after successful onboarding start\n if (response.access_token) {\n this.client.setAuthToken(response.access_token);\n }\n \n return response;\n }\n\n /**\n * Updates basic gym settings (step 2 of onboarding)\n * Configure basic gym information like name, address, etc.\n */\n async updateGymSettings(data: UpdateGymSettingsData): Promise<OnboardingResponse> {\n return this.client.put<OnboardingResponse>('/onboarding/gym-settings', data);\n }\n\n /**\n * Configure gym features (step 3 of onboarding)\n * Enable/disable various management features\n */\n async configureFeatures(data: ConfigureFeaturesData): Promise<OnboardingResponse> {\n return this.client.put<OnboardingResponse>('/onboarding/configure-features', data);\n }\n\n /**\n * Mark onboarding as complete\n */\n async completeSetup(data: CompleteGuidedSetupData): Promise<OnboardingResponse> {\n return this.client.post<OnboardingResponse>('/onboarding/complete', data);\n }\n\n /**\n * Get current onboarding status\n * Check progress and next steps\n */\n async getStatus(gymId: string): Promise<OnboardingStatus> {\n return this.client.get<OnboardingStatus>(`/onboarding/status/${gymId}`);\n }\n}","import { BaseResource } from './base';\nimport { \n Product,\n ProductCategory,\n StockMovement,\n CreateProductDto, \n CreateServiceDto,\n UpdateProductDto,\n UpdateStockDto,\n CreateProductCategoryDto,\n UpdateProductCategoryDto,\n SearchProductsParams\n} from '../models/products';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class ProductsResource extends BaseResource {\n private basePath = 'products';\n\n // Product Category Methods\n async createCategory(\n data: CreateProductCategoryDto, \n options?: RequestOptions\n ): Promise<ProductCategory> {\n return this.client.post<ProductCategory>(`${this.basePath}/categories`, data, options);\n }\n\n async getCategories(options?: RequestOptions): Promise<ProductCategory[]> {\n return this.client.get<ProductCategory[]>(`${this.basePath}/categories`, undefined, options);\n }\n\n async updateCategory(\n id: string,\n data: UpdateProductCategoryDto,\n options?: RequestOptions\n ): Promise<ProductCategory> {\n return this.client.put<ProductCategory>(`${this.basePath}/categories/${id}`, data, options);\n }\n\n async deleteCategory(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/categories/${id}`, options);\n }\n\n // Product Methods\n async createProduct(data: CreateProductDto, options?: RequestOptions): Promise<Product> {\n return this.client.post<Product>(this.basePath, data, options);\n }\n\n async createService(data: CreateServiceDto, options?: RequestOptions): Promise<Product> {\n return this.client.post<Product>(`${this.basePath}/services`, data, options);\n }\n\n async searchProducts(\n params?: SearchProductsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Product>> {\n return this.paginate<Product>(this.basePath, params, options);\n }\n\n async getProduct(id: string, options?: RequestOptions): Promise<Product> {\n return this.client.get<Product>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateProduct(\n id: string,\n data: UpdateProductDto,\n options?: RequestOptions\n ): Promise<Product> {\n return this.client.put<Product>(`${this.basePath}/${id}`, data, options);\n }\n\n async deleteProduct(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async toggleProductStatus(id: string, options?: RequestOptions): Promise<Product> {\n return this.client.patch<Product>(`${this.basePath}/${id}/toggle-status`, undefined, options);\n }\n\n async updateStock(\n id: string,\n data: UpdateStockDto,\n options?: RequestOptions\n ): Promise<Product> {\n return this.client.patch<Product>(`${this.basePath}/${id}/stock`, data, options);\n }\n\n async getLowStockProducts(\n threshold: number = 10,\n options?: RequestOptions\n ): Promise<Product[]> {\n return this.client.get<Product[]>(\n `${this.basePath}/low-stock`,\n { threshold },\n options\n );\n }\n\n async getProductStockMovements(\n id: string,\n options?: RequestOptions\n ): Promise<StockMovement[]> {\n return this.client.get<StockMovement[]>(`${this.basePath}/${id}/stock-movements`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport { \n Sale,\n CreateSaleDto, \n UpdateSaleDto,\n UpdatePaymentStatusDto,\n SearchSalesParams,\n SalesStats,\n TopSellingProduct,\n CustomerSalesReport\n} from '../models/sales';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class SalesResource extends BaseResource {\n private basePath = 'sales';\n\n async createSale(data: CreateSaleDto, options?: RequestOptions): Promise<Sale> {\n return this.client.post<Sale>(this.basePath, data, options);\n }\n\n async searchSales(\n params?: SearchSalesParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Sale>> {\n return this.paginate<Sale>(this.basePath, params, options);\n }\n\n async getSale(id: string, options?: RequestOptions): Promise<Sale> {\n return this.client.get<Sale>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateSale(\n id: string,\n data: UpdateSaleDto,\n options?: RequestOptions\n ): Promise<Sale> {\n return this.client.put<Sale>(`${this.basePath}/${id}`, data, options);\n }\n\n async updatePaymentStatus(\n id: string,\n paymentStatus: 'paid' | 'unpaid',\n options?: RequestOptions\n ): Promise<Sale> {\n return this.client.put<Sale>(`${this.basePath}/${id}/payment-status`, { paymentStatus }, options);\n }\n\n async deleteSale(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getSalesStats(\n startDate?: string,\n endDate?: string,\n options?: RequestOptions\n ): Promise<SalesStats> {\n const params: Record<string, string> = {};\n if (startDate) params.startDate = startDate;\n if (endDate) params.endDate = endDate;\n\n return this.client.get<SalesStats>(\n `${this.basePath}/stats`,\n Object.keys(params).length > 0 ? params : undefined,\n options\n );\n }\n\n async getTopSellingProducts(\n limit: number = 10,\n startDate?: string,\n endDate?: string,\n options?: RequestOptions\n ): Promise<TopSellingProduct[]> {\n const params: Record<string, string | number> = { limit };\n if (startDate) params.startDate = startDate;\n if (endDate) params.endDate = endDate;\n\n return this.client.get<TopSellingProduct[]>(\n `${this.basePath}/top-products`,\n params,\n options\n );\n }\n\n async getSalesByCustomer(\n startDate?: string,\n endDate?: string,\n options?: RequestOptions\n ): Promise<CustomerSalesReport> {\n const params: Record<string, string> = {};\n if (startDate) params.startDate = startDate;\n if (endDate) params.endDate = endDate;\n\n return this.client.get<CustomerSalesReport>(\n `${this.basePath}/reports/by-customer`,\n Object.keys(params).length > 0 ? params : undefined,\n options\n );\n }\n}","import { BaseResource } from './base';\nimport { \n Supplier,\n CreateSupplierDto, \n UpdateSupplierDto,\n SearchSuppliersParams,\n SuppliersStats\n} from '../models/suppliers';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class SuppliersResource extends BaseResource {\n private basePath = 'suppliers';\n\n async createSupplier(data: CreateSupplierDto, options?: RequestOptions): Promise<Supplier> {\n return this.client.post<Supplier>(this.basePath, data, options);\n }\n\n async searchSuppliers(\n params?: SearchSuppliersParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Supplier>> {\n return this.paginate<Supplier>(this.basePath, params, options);\n }\n\n async getSupplier(id: string, options?: RequestOptions): Promise<Supplier> {\n return this.client.get<Supplier>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateSupplier(\n id: string,\n data: UpdateSupplierDto,\n options?: RequestOptions\n ): Promise<Supplier> {\n return this.client.put<Supplier>(`${this.basePath}/${id}`, data, options);\n }\n\n async deleteSupplier(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getSuppliersStats(options?: RequestOptions): Promise<SuppliersStats> {\n return this.client.get<SuppliersStats>(`${this.basePath}/stats`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport { UserProfileDto, UpdateProfileDto } from '../models/users';\nimport { RequestOptions } from '../types';\n\nexport class UsersResource extends BaseResource {\n /**\n * Get the current user's profile\n * @param options - Request options\n * @returns User profile data\n */\n async getProfile(options?: RequestOptions): Promise<UserProfileDto> {\n return this.client.get<UserProfileDto>('/users/profile', undefined, options);\n }\n\n /**\n * Update the current user's profile\n * @param data - Profile update data\n * @param options - Request options\n * @returns Updated user profile\n */\n async updateProfile(\n data: UpdateProfileDto,\n options?: RequestOptions\n ): Promise<UserProfileDto> {\n return this.client.put<UserProfileDto>('/users/profile', data, options);\n }\n}","import {\n AvailablePlanDto,\n SubscriptionStatusDto,\n AffiliateOrganizationDto,\n CheckLimitResponse,\n} from '../models/subscriptions';\nimport { RequestOptions } from '../types';\nimport { BaseResource } from './base';\n\nexport class SubscriptionsResource extends BaseResource {\n private basePath = 'subscriptions';\n\n /**\n * Get available subscription plans (currently only free plans)\n */\n async getAvailablePlans(options?: RequestOptions): Promise<AvailablePlanDto[]> {\n return this.client.get<AvailablePlanDto[]>(`${this.basePath}/plans`, undefined, options);\n }\n\n /**\n * Get subscription status for an organization\n */\n async getSubscriptionStatus(\n organizationId: string,\n options?: RequestOptions,\n ): Promise<SubscriptionStatusDto> {\n return this.client.get<SubscriptionStatusDto>(\n `${this.basePath}/organizations/${organizationId}/status`,\n undefined,\n options,\n );\n }\n\n /**\n * Affiliate organization to a subscription plan\n */\n async affiliateOrganization(\n organizationId: string,\n data: AffiliateOrganizationDto,\n options?: RequestOptions,\n ): Promise<SubscriptionStatusDto> {\n return this.client.post<SubscriptionStatusDto>(\n `${this.basePath}/organizations/${organizationId}/affiliate`,\n data,\n options,\n );\n }\n\n /**\n * Check subscription limits\n * @param organizationId Organization ID\n * @param limitType Type of limit to check: 'gyms', 'clients', or 'users'\n */\n async checkSubscriptionLimit(\n organizationId: string,\n limitType: 'gyms' | 'clients' | 'users',\n options?: RequestOptions,\n ): Promise<CheckLimitResponse> {\n return this.client.get<CheckLimitResponse>(\n `${this.basePath}/organizations/${organizationId}/limits/${limitType}`,\n undefined,\n options,\n );\n }\n}","import { BaseResource } from './base';\nimport { \n PaymentMethod,\n CreatePaymentMethodDto, \n UpdatePaymentMethodDto,\n SearchPaymentMethodsParams,\n PaymentMethodStats\n} from '../models/payment-methods';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class PaymentMethodsResource extends BaseResource {\n private basePath = 'payment-methods';\n\n async createPaymentMethod(data: CreatePaymentMethodDto, options?: RequestOptions): Promise<PaymentMethod> {\n return this.client.post<PaymentMethod>(this.basePath, data, options);\n }\n\n async searchPaymentMethods(\n params?: SearchPaymentMethodsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<PaymentMethod>> {\n return this.paginate<PaymentMethod>(this.basePath, params, options);\n }\n\n async getPaymentMethod(id: string, options?: RequestOptions): Promise<PaymentMethod> {\n return this.client.get<PaymentMethod>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updatePaymentMethod(\n id: string,\n data: UpdatePaymentMethodDto,\n options?: RequestOptions\n ): Promise<PaymentMethod> {\n return this.client.put<PaymentMethod>(`${this.basePath}/${id}`, data, options);\n }\n\n async deletePaymentMethod(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async togglePaymentMethod(id: string, options?: RequestOptions): Promise<PaymentMethod> {\n return this.client.put<PaymentMethod>(`${this.basePath}/${id}/toggle`, undefined, options);\n }\n\n async getPaymentMethodStats(options?: RequestOptions): Promise<PaymentMethodStats> {\n return this.client.get<PaymentMethodStats>(`${this.basePath}/stats`, undefined, options);\n }\n}","import { ApiClient } from './client';\nimport { GymSpaceConfig } from './types';\nimport {\n AuthResource,\n OrganizationsResource,\n GymsResource,\n ClientsResource,\n MembershipPlansResource,\n ContractsResource,\n DashboardResource,\n EvaluationsResource,\n CheckInsResource,\n InvitationsResource,\n LeadsResource,\n AssetsResource,\n FilesResource,\n PublicCatalogResource,\n HealthResource,\n OnboardingResource,\n ProductsResource,\n SalesResource,\n SuppliersResource,\n UsersResource,\n SubscriptionsResource,\n PaymentMethodsResource,\n} from './resources';\n\nexport class GymSpaceSdk {\n private client: ApiClient;\n \n // Resources\n public auth: AuthResource;\n public organizations: OrganizationsResource;\n public gyms: GymsResource;\n public clients: ClientsResource;\n public membershipPlans: MembershipPlansResource;\n public contracts: ContractsResource;\n public dashboard: DashboardResource;\n public evaluations: EvaluationsResource;\n public checkIns: CheckInsResource;\n public invitations: InvitationsResource;\n public leads: LeadsResource;\n public assets: AssetsResource;\n public files: FilesResource;\n public publicCatalog: PublicCatalogResource;\n public health: HealthResource;\n public onboarding: OnboardingResource;\n public products: ProductsResource;\n public sales: SalesResource;\n public suppliers: SuppliersResource;\n public users: UsersResource;\n public subscriptions: SubscriptionsResource;\n public paymentMethods: PaymentMethodsResource;\n\n constructor(config: GymSpaceConfig) {\n this.client = new ApiClient(config);\n \n // Initialize resources\n this.auth = new AuthResource(this.client);\n this.organizations = new OrganizationsResource(this.client);\n this.gyms = new GymsResource(this.client);\n this.clients = new ClientsResource(this.client);\n this.membershipPlans = new MembershipPlansResource(this.client);\n this.contracts = new ContractsResource(this.client);\n this.dashboard = new DashboardResource(this.client);\n this.evaluations = new EvaluationsResource(this.client);\n this.checkIns = new CheckInsResource(this.client);\n this.invitations = new InvitationsResource(this.client);\n this.leads = new LeadsResource(this.client);\n this.assets = new AssetsResource(this.client);\n this.files = new FilesResource(this.client);\n this.publicCatalog = new PublicCatalogResource(this.client);\n this.health = new HealthResource(this.client);\n this.onboarding = new OnboardingResource(this.client);\n this.products = new ProductsResource(this.client);\n this.sales = new SalesResource(this.client);\n this.suppliers = new SuppliersResource(this.client);\n this.users = new UsersResource(this.client);\n this.subscriptions = new SubscriptionsResource(this.client);\n this.paymentMethods = new PaymentMethodsResource(this.client);\n }\n\n /**\n * Set the authentication token\n */\n setAuthToken(token: string): void {\n this.client.setAuthToken(token);\n }\n\n\n /**\n * Set the current gym context\n */\n setGymId(gymId: string): void {\n this.client.setGymId(gymId);\n }\n\n /**\n * Clear authentication\n */\n clearAuth(): void {\n this.client.clearAuth();\n }\n\n /**\n * Get the underlying API client\n */\n getClient(): ApiClient {\n return this.client;\n }\n}","export enum UserType {\n OWNER = 'owner',\n COLLABORATOR = 'collaborator',\n}\n\nexport enum SubscriptionStatus {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n EXPIRED = 'expired',\n PAUSED = 'paused',\n PENDING_UPGRADE = 'pending_upgrade',\n}\n\nexport enum CollaboratorStatus {\n PENDING = 'pending',\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n}\n\nexport enum InvitationStatus {\n PENDING = 'pending',\n ACCEPTED = 'accepted',\n EXPIRED = 'expired',\n}\n\nexport enum ClientStatus {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n}\n\nexport enum PlanStatus {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n ARCHIVED = 'archived',\n}\n\nexport enum ContractStatus {\n PENDING = 'pending',\n ACTIVE = 'active',\n EXPIRING_SOON = 'expiring_soon',\n EXPIRED = 'expired',\n CANCELLED = 'cancelled',\n FOR_RENEW = 'for_renew',\n}\n\nexport enum PaymentFrequency {\n MONTHLY = 'monthly',\n QUARTERLY = 'quarterly',\n ANNUAL = 'annual',\n}\n\nexport enum AssetStatus {\n ACTIVE = 'active',\n DELETED = 'deleted',\n}\n\nexport enum EvaluationType {\n INITIAL = 'initial',\n PROGRESS = 'progress',\n FINAL = 'final',\n}\n\nexport enum EvaluationStatus {\n OPEN = 'open',\n IN_PROGRESS = 'in_progress',\n COMPLETED = 'completed',\n CANCELLED = 'cancelled',\n}\n\nexport enum CommentType {\n PROGRESS_NOTE = 'progress_note',\n PHONE_CALL = 'phone_call',\n MEETING = 'meeting',\n REMINDER = 'reminder',\n OTHER = 'other',\n}\n\nexport enum AssetCategory {\n MEDICAL_DOCUMENT = 'medical_document',\n IDENTIFICATION = 'identification',\n INSURANCE = 'insurance',\n CONTRACT_COPY = 'contract_copy',\n OTHER = 'other',\n}\n\nexport enum ContractAssetType {\n PAYMENT_RECEIPT = 'payment_receipt',\n CONTRACT_DOCUMENT = 'contract_document',\n IDENTIFICATION = 'identification',\n OTHER = 'other',\n}\n\nexport enum EvaluationAssetStage {\n INITIAL = 'initial',\n PROGRESS = 'progress',\n FINAL = 'final',\n}\n\nexport enum EvaluationAssetCategory {\n BODY_PHOTO = 'body_photo',\n MEASUREMENT_PHOTO = 'measurement_photo',\n DOCUMENT = 'document',\n REPORT = 'report',\n OTHER = 'other',\n}\n\nexport enum LeadStatus {\n NEW = 'NEW',\n CONTACTED = 'CONTACTED',\n INTERESTED = 'INTERESTED',\n CONVERTED = 'CONVERTED',\n LOST = 'LOST',\n}","// Permission constants\nexport const PERMISSIONS = {\n // Organizations\n ORGANIZATIONS_CREATE: 'ORGANIZATIONS_CREATE',\n ORGANIZATIONS_READ: 'ORGANIZATIONS_READ',\n ORGANIZATIONS_UPDATE: 'ORGANIZATIONS_UPDATE',\n ORGANIZATIONS_DELETE: 'ORGANIZATIONS_DELETE',\n \n // Gyms\n GYMS_CREATE: 'GYMS_CREATE',\n GYMS_READ: 'GYMS_READ',\n GYMS_UPDATE: 'GYMS_UPDATE',\n GYMS_DELETE: 'GYMS_DELETE',\n \n // Collaborators\n COLLABORATORS_CREATE: 'COLLABORATORS_CREATE',\n COLLABORATORS_READ: 'COLLABORATORS_READ',\n COLLABORATORS_UPDATE: 'COLLABORATORS_UPDATE',\n COLLABORATORS_DELETE: 'COLLABORATORS_DELETE',\n \n // Clients\n CLIENTS_CREATE: 'CLIENTS_CREATE',\n CLIENTS_READ: 'CLIENTS_READ',\n CLIENTS_UPDATE: 'CLIENTS_UPDATE',\n CLIENTS_DELETE: 'CLIENTS_DELETE',\n \n // Contracts\n CONTRACTS_CREATE: 'CONTRACTS_CREATE',\n CONTRACTS_READ: 'CONTRACTS_READ',\n CONTRACTS_UPDATE: 'CONTRACTS_UPDATE',\n CONTRACTS_APPROVE: 'CONTRACTS_APPROVE',\n CONTRACTS_CANCEL: 'CONTRACTS_CANCEL',\n \n // Evaluations\n EVALUATIONS_CREATE: 'EVALUATIONS_CREATE',\n EVALUATIONS_READ: 'EVALUATIONS_READ',\n EVALUATIONS_UPDATE: 'EVALUATIONS_UPDATE',\n EVALUATIONS_DELETE: 'EVALUATIONS_DELETE',\n \n // Check-ins\n CHECKINS_CREATE: 'CHECKINS_CREATE',\n CHECKINS_READ: 'CHECKINS_READ',\n \n // Leads\n LEADS_CREATE: 'LEADS_CREATE',\n LEADS_READ: 'LEADS_READ',\n LEADS_UPDATE: 'LEADS_UPDATE',\n LEADS_DELETE: 'LEADS_DELETE',\n \n // Reports\n REPORTS_VIEW: 'REPORTS_VIEW',\n REPORTS_FINANCIAL: 'REPORTS_FINANCIAL',\n \n // Settings\n SETTINGS_UPDATE: 'SETTINGS_UPDATE',\n \n // Assets\n ASSETS_CREATE: 'ASSETS_CREATE',\n ASSETS_READ: 'ASSETS_READ',\n ASSETS_DELETE: 'ASSETS_DELETE',\n \n // Files\n FILES_CREATE: 'FILES_CREATE',\n FILES_READ: 'FILES_READ',\n FILES_DELETE: 'FILES_DELETE',\n \n // Products\n PRODUCTS_CREATE: 'PRODUCTS_CREATE',\n PRODUCTS_READ: 'PRODUCTS_READ',\n PRODUCTS_UPDATE: 'PRODUCTS_UPDATE',\n PRODUCTS_DELETE: 'PRODUCTS_DELETE',\n \n // Product Categories\n PRODUCT_CATEGORIES_CREATE: 'PRODUCT_CATEGORIES_CREATE',\n PRODUCT_CATEGORIES_READ: 'PRODUCT_CATEGORIES_READ',\n PRODUCT_CATEGORIES_UPDATE: 'PRODUCT_CATEGORIES_UPDATE',\n PRODUCT_CATEGORIES_DELETE: 'PRODUCT_CATEGORIES_DELETE',\n \n // Sales\n SALES_CREATE: 'SALES_CREATE',\n SALES_READ: 'SALES_READ',\n SALES_UPDATE: 'SALES_UPDATE',\n SALES_DELETE: 'SALES_DELETE',\n \n // Suppliers\n SUPPLIERS_CREATE: 'SUPPLIERS_CREATE',\n SUPPLIERS_READ: 'SUPPLIERS_READ',\n SUPPLIERS_UPDATE: 'SUPPLIERS_UPDATE',\n SUPPLIERS_DELETE: 'SUPPLIERS_DELETE',\n \n // Payment Methods\n PAYMENT_METHODS_CREATE: 'PAYMENT_METHODS_CREATE',\n PAYMENT_METHODS_READ: 'PAYMENT_METHODS_READ',\n PAYMENT_METHODS_UPDATE: 'PAYMENT_METHODS_UPDATE',\n PAYMENT_METHODS_DELETE: 'PAYMENT_METHODS_DELETE',\n} as const;\n\n// Role definitions\nexport const ROLE_PERMISSIONS = {\n OWNER: Object.values(PERMISSIONS),\n MANAGER: [\n PERMISSIONS.GYMS_READ,\n PERMISSIONS.COLLABORATORS_READ,\n PERMISSIONS.CLIENTS_CREATE,\n PERMISSIONS.CLIENTS_READ,\n PERMISSIONS.CLIENTS_UPDATE,\n PERMISSIONS.CONTRACTS_CREATE,\n PERMISSIONS.CONTRACTS_READ,\n PERMISSIONS.EVALUATIONS_CREATE,\n PERMISSIONS.EVALUATIONS_READ,\n PERMISSIONS.EVALUATIONS_UPDATE,\n PERMISSIONS.CHECKINS_CREATE,\n PERMISSIONS.CHECKINS_READ,\n PERMISSIONS.REPORTS_VIEW,\n PERMISSIONS.ASSETS_CREATE,\n PERMISSIONS.ASSETS_READ,\n PERMISSIONS.ASSETS_DELETE,\n PERMISSIONS.FILES_CREATE,\n PERMISSIONS.FILES_READ,\n PERMISSIONS.FILES_DELETE,\n PERMISSIONS.PRODUCTS_CREATE,\n PERMISSIONS.PRODUCTS_READ,\n PERMISSIONS.PRODUCTS_UPDATE,\n PERMISSIONS.PRODUCTS_DELETE,\n PERMISSIONS.PRODUCT_CATEGORIES_CREATE,\n PERMISSIONS.PRODUCT_CATEGORIES_READ,\n PERMISSIONS.PRODUCT_CATEGORIES_UPDATE,\n PERMISSIONS.PRODUCT_CATEGORIES_DELETE,\n PERMISSIONS.SALES_CREATE,\n PERMISSIONS.SALES_READ,\n PERMISSIONS.SALES_UPDATE,\n PERMISSIONS.SUPPLIERS_CREATE,\n PERMISSIONS.SUPPLIERS_READ,\n PERMISSIONS.SUPPLIERS_UPDATE,\n PERMISSIONS.SUPPLIERS_DELETE,\n PERMISSIONS.PAYMENT_METHODS_CREATE,\n PERMISSIONS.PAYMENT_METHODS_READ,\n PERMISSIONS.PAYMENT_METHODS_UPDATE,\n PERMISSIONS.PAYMENT_METHODS_DELETE,\n ],\n STAFF: [\n PERMISSIONS.CLIENTS_READ,\n PERMISSIONS.CHECKINS_CREATE,\n PERMISSIONS.CHECKINS_READ,\n PERMISSIONS.PRODUCTS_READ,\n PERMISSIONS.PRODUCT_CATEGORIES_READ,\n PERMISSIONS.SALES_CREATE,\n PERMISSIONS.SALES_READ,\n PERMISSIONS.PAYMENT_METHODS_READ,\n ],\n ADVISOR: [\n PERMISSIONS.CLIENTS_READ,\n PERMISSIONS.EVALUATIONS_CREATE,\n PERMISSIONS.EVALUATIONS_READ,\n PERMISSIONS.EVALUATIONS_UPDATE,\n PERMISSIONS.ASSETS_CREATE,\n PERMISSIONS.ASSETS_READ,\n PERMISSIONS.FILES_CREATE,\n PERMISSIONS.FILES_READ,\n ],\n} as const;\n\n// Cache TTL values (in seconds)\nexport const CACHE_TTL = {\n USER_PERMISSIONS: 900, // 15 minutes\n GYM_DATA: 1800, // 30 minutes\n STATIC_DATA: 3600, // 60 minutes\n REPORTS: 300, // 5 minutes\n DASHBOARD: 180, // 3 minutes\n} as const;\n\n// File size limits (in bytes)\nexport const FILE_LIMITS = {\n MAX_FILE_SIZE: 10 * 1024 * 1024, // 10MB\n MAX_IMAGE_SIZE: 5 * 1024 * 1024, // 5MB\n MAX_DOCUMENT_SIZE: 10 * 1024 * 1024, // 10MB\n} as const;\n\n// Pagination defaults\nexport const PAGINATION_DEFAULTS = {\n PAGE: 1,\n LIMIT: 20,\n MAX_LIMIT: 100,\n} as const;\n\n// Date formats\nexport const DATE_FORMATS = {\n DATE_ONLY: 'YYYY-MM-DD',\n DATETIME: 'YYYY-MM-DD HH:mm:ss',\n TIME_ONLY: 'HH:mm:ss',\n} as const;\n\n// Headers\nexport const HEADERS = {\n GYM_ID: 'X-Gym-Id',\n REQUEST_ID: 'X-Request-Id',\n} as const;","export interface StartOnboardingData {\n name: string;\n email: string;\n phone: string;\n password: string;\n organizationName: string;\n country: string;\n currency: string;\n timezone: string;\n}\n\nexport interface StartOnboardingResponse {\n success: boolean;\n access_token: string;\n refresh_token: string;\n user: {\n id: string;\n email: string;\n name: string;\n userType: string;\n };\n organization: {\n id: string;\n name: string;\n organizationCode: string;\n };\n gym: {\n id: string;\n name: string;\n };\n onboardingStatus: OnboardingStatus;\n}\n\nexport interface BusinessHours {\n open: string;\n close: string;\n closed: boolean;\n}\n\nexport interface WeeklySchedule {\n monday: BusinessHours;\n tuesday: BusinessHours;\n wednesday: BusinessHours;\n thursday: BusinessHours;\n friday: BusinessHours;\n saturday: BusinessHours;\n sunday: BusinessHours;\n}\n\nexport interface Amenities {\n hasParking: boolean;\n hasShowers: boolean;\n hasLockers: boolean;\n hasPool: boolean;\n hasSauna: boolean;\n hasWifi: boolean;\n hasChildcare: boolean;\n hasCafeteria: boolean;\n}\n\nexport interface SocialMedia {\n facebook?: string;\n instagram?: string;\n twitter?: string;\n website?: string;\n}\n\nexport interface UpdateGymSettingsData {\n gymId: string;\n name: string;\n address: string;\n city: string;\n state: string;\n postalCode: string;\n phone: string;\n email: string;\n businessHours: WeeklySchedule;\n capacity: number;\n description?: string;\n amenities: Amenities;\n socialMedia?: SocialMedia;\n logo?: string;\n coverPhoto?: string;\n primaryColor?: string;\n}\n\nexport interface ClientManagementFeatures {\n enabled: boolean;\n requireDocumentId: boolean;\n enablePhotos: boolean;\n trackEmergencyContacts: boolean;\n trackMedicalConditions: boolean;\n}\n\nexport interface MembershipManagementFeatures {\n enabled: boolean;\n allowCustomPricing: boolean;\n allowContractFreezing: boolean;\n expiryWarningDays: number;\n autoRenewalReminders: boolean;\n}\n\nexport interface CheckInSystemFeatures {\n enabled: boolean;\n requireActiveContract: boolean;\n trackCheckInTime: boolean;\n allowMultiplePerDay: boolean;\n}\n\nexport interface EvaluationSystemFeatures {\n enabled: boolean;\n trackMeasurements: boolean;\n trackBodyComposition: boolean;\n trackPerformance: boolean;\n defaultFrequencyDays: number;\n}\n\nexport interface LeadManagementFeatures {\n enabled: boolean;\n publicCatalogListing: boolean;\n enableOnlineForm: boolean;\n autoAssignLeads: boolean;\n}\n\nexport interface NotificationSettings {\n emailEnabled: boolean;\n smsEnabled: boolean;\n welcomeEmails: boolean;\n contractExpiryAlerts: boolean;\n evaluationReminders: boolean;\n}\n\nexport interface ConfigureFeaturesData {\n gymId: string;\n clientManagement: ClientManagementFeatures;\n membershipManagement: MembershipManagementFeatures;\n checkInSystem: CheckInSystemFeatures;\n evaluationSystem: EvaluationSystemFeatures;\n leadManagement: LeadManagementFeatures;\n notifications: NotificationSettings;\n}\n\nexport interface CompleteGuidedSetupData {\n gymId: string;\n}\n\nexport enum OnboardingStep {\n ACCOUNT_CREATED = 'account_created',\n GYM_SETTINGS = 'gym_settings',\n FEATURES_CONFIGURED = 'features_configured',\n COMPLETED = 'completed',\n}\n\nexport interface OnboardingStatus {\n organizationId: string;\n gymId: string;\n currentStep: OnboardingStep;\n accountCreated: boolean;\n gymSettingsCompleted: boolean;\n featuresConfigured: boolean;\n isCompleted: boolean;\n nextAction: string;\n completionPercentage: number;\n}\n\nexport interface OnboardingResponse {\n success: boolean;\n gym?: any;\n onboardingStatus: OnboardingStatus;\n message?: string;\n}"]}
1
+ {"version":3,"sources":["../src/errors.ts","../src/client.ts","../src/resources/base.ts","../src/resources/auth.ts","../src/resources/organizations.ts","../src/resources/gyms.ts","../src/resources/clients.ts","../src/resources/membership-plans.ts","../src/resources/contracts.ts","../src/resources/dashboard.ts","../src/resources/evaluations.ts","../src/resources/check-ins.ts","../src/resources/invitations.ts","../src/resources/leads.ts","../src/resources/assets.ts","../src/resources/files.ts","../src/resources/public-catalog.ts","../src/resources/health.ts","../src/resources/onboarding.ts","../src/resources/products.ts","../src/resources/sales.ts","../src/resources/suppliers.ts","../src/resources/users.ts","../src/resources/subscriptions.ts","../src/resources/payment-methods.ts","../src/sdk.ts","../../../node_modules/@gymspace/shared/src/enums.ts","../../../node_modules/@gymspace/shared/src/constants.ts","../src/models/onboarding.ts"],"names":["axios","UserType","SubscriptionStatus","CollaboratorStatus","InvitationStatus","ClientStatus","PlanStatus","ContractStatus","PaymentFrequency","AssetStatus","EvaluationType","EvaluationStatus","CommentType","AssetCategory","ContractAssetType","EvaluationAssetStage","EvaluationAssetCategory","LeadStatus","OnboardingStep"],"mappings":"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","file":"index.js","sourcesContent":["export class GymSpaceError extends Error {\n constructor(\n message: string,\n public statusCode?: number,\n public code?: string,\n public details?: any\n ) {\n super(message);\n this.name = 'GymSpaceError';\n }\n}\n\nexport class AuthenticationError extends GymSpaceError {\n constructor(message = 'Authentication failed') {\n super(message, 401, 'AUTHENTICATION_ERROR');\n this.name = 'AuthenticationError';\n }\n}\n\nexport class AuthorizationError extends GymSpaceError {\n constructor(message = 'Access denied') {\n super(message, 403, 'AUTHORIZATION_ERROR');\n this.name = 'AuthorizationError';\n }\n}\n\nexport class NotFoundError extends GymSpaceError {\n constructor(resource: string, id?: string) {\n const message = id \n ? `${resource} with id ${id} not found`\n : `${resource} not found`;\n super(message, 404, 'NOT_FOUND');\n this.name = 'NotFoundError';\n }\n}\n\nexport class ValidationError extends GymSpaceError {\n constructor(message: string, errors?: any) {\n super(message, 400, 'VALIDATION_ERROR', errors);\n this.name = 'ValidationError';\n }\n}\n\nexport class NetworkError extends GymSpaceError {\n constructor(message = 'Network request failed') {\n super(message, 0, 'NETWORK_ERROR');\n this.name = 'NetworkError';\n }\n}","import axios, {\n AxiosInstance,\n AxiosRequestConfig,\n AxiosError,\n InternalAxiosRequestConfig,\n AxiosRequestHeaders,\n} from 'axios';\nimport { GymSpaceConfig, RequestOptions } from './types';\nimport {\n GymSpaceError,\n AuthenticationError,\n AuthorizationError,\n NotFoundError,\n ValidationError,\n NetworkError,\n} from './errors';\n\nexport class ApiClient {\n private axiosInstance: AxiosInstance;\n private config: GymSpaceConfig;\n private refreshToken: string | null = null;\n\n constructor(config: GymSpaceConfig) {\n this.config = config;\n\n this.axiosInstance = axios.create({\n baseURL: config.baseURL,\n timeout: config.timeout || 30000,\n headers: {\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n });\n\n this.setupInterceptors();\n }\n\n private setupInterceptors(): void {\n // Request interceptor\n this.axiosInstance.interceptors.request.use(\n (config: InternalAxiosRequestConfig) => {\n // Add Authorization header if auth token is configured\n if (this.config.apiKey && config.headers) {\n config.headers['Authorization'] = `Bearer ${this.config.apiKey}`;\n }\n\n // Add refresh token header for current-session endpoint\n if (this.refreshToken && config.url?.includes('current-session') && config.headers) {\n config.headers['X-Refresh-Token'] = this.refreshToken;\n }\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n },\n );\n\n // Response interceptor - simplified without automatic token refresh\n this.axiosInstance.interceptors.response.use(\n (response) => {\n return response;\n },\n async (error: AxiosError) => {\n // Simply throw the error - no automatic refresh attempts\n throw this.handleError(error);\n },\n );\n }\n\n\n private handleError(error: AxiosError): GymSpaceError {\n const requestPath = error.config?.url || 'unknown';\n const method = error.config?.method?.toUpperCase() || 'unknown';\n\n if (!error.response) {\n console.error('Network Error:', {\n method,\n path: requestPath,\n error: error.message,\n });\n return new NetworkError(error.message);\n }\n\n const { status, data } = error.response;\n const errorData = data as any;\n const resource = errorData?.resource || 'unknown';\n\n console.error('HTTP Error:', {\n method,\n path: requestPath,\n status,\n resource,\n message: errorData?.message || error.message,\n errorCode: errorData?.code,\n details: errorData,\n });\n\n switch (status) {\n case 401:\n return new AuthenticationError(errorData?.message || 'Authentication failed');\n case 403:\n return new AuthorizationError(errorData?.message || 'Access denied');\n case 404:\n return new NotFoundError(errorData?.resource || 'Resource', errorData?.id);\n case 400:\n return new ValidationError(errorData?.message || 'Validation failed', errorData?.errors);\n default:\n return new GymSpaceError(\n errorData?.message || error.message,\n status,\n errorData?.code,\n errorData,\n );\n }\n }\n\n private mergeOptions(options?: RequestOptions): AxiosRequestConfig {\n const headers: Record<string, string> = { ...options?.headers };\n\n if (options?.gymId) {\n headers['X-Gym-Id'] = options.gymId;\n }\n\n return { headers };\n }\n\n async request<T>(\n method: string,\n path: string,\n data?: any,\n options?: RequestOptions & AxiosRequestConfig,\n ): Promise<T> {\n const { headers, ...axiosConfig } = options || {};\n\n const config: AxiosRequestConfig = {\n method,\n url: path,\n ...this.mergeOptions({ headers }),\n ...axiosConfig,\n };\n\n if (data && ['POST', 'PUT', 'PATCH'].includes(method.toUpperCase())) {\n config.data = data;\n } else if (data && method.toUpperCase() === 'GET') {\n config.params = data;\n }\n\n const response = await this.axiosInstance.request<T>(config);\n return response.data;\n }\n\n get<T>(path: string, params?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('GET', path, params, options);\n }\n\n post<T>(path: string, data?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('POST', path, data, options);\n }\n\n put<T>(path: string, data?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('PUT', path, data, options);\n }\n\n patch<T>(path: string, data?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('PATCH', path, data, options);\n }\n\n delete<T>(path: string, options?: RequestOptions): Promise<T> {\n return this.request<T>('DELETE', path, undefined, options);\n }\n\n setAuthToken(token: string): void {\n this.config.apiKey = token;\n }\n\n setRefreshToken(token: string | null): void {\n this.refreshToken = token;\n }\n\n getRefreshToken(): string | null {\n return this.refreshToken;\n }\n\n setGymId(gymId: string): void {\n this.axiosInstance.defaults.headers.common['X-Gym-Id'] = gymId;\n }\n\n clearAuth(): void {\n delete this.config.apiKey;\n this.refreshToken = null;\n delete this.axiosInstance.defaults.headers.common['Authorization'];\n delete this.axiosInstance.defaults.headers.common['X-Gym-Id'];\n }\n\n getBaseUrl(): string {\n return this.config.baseURL;\n }\n}\n","import { ApiClient } from '../client';\nimport { RequestOptions, PaginatedResponseDto, PaginationQueryDto } from '../types';\n\nexport abstract class BaseResource {\n constructor(protected client: ApiClient) {}\n\n protected async request<T>(\n path: string,\n options: {\n method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\n body?: string;\n headers?: Record<string, string>;\n }\n ): Promise<T> {\n const data = options.body ? JSON.parse(options.body) : undefined;\n \n switch (options.method) {\n case 'GET':\n return this.client.get<T>(path, data, { headers: options.headers });\n case 'POST':\n return this.client.post<T>(path, data, { headers: options.headers });\n case 'PUT':\n return this.client.put<T>(path, data, { headers: options.headers });\n case 'PATCH':\n return this.client.patch<T>(path, data, { headers: options.headers });\n case 'DELETE':\n return this.client.delete<T>(path, { headers: options.headers });\n default:\n throw new Error(`Unsupported HTTP method: ${options.method}`);\n }\n }\n\n protected buildPath(base: string, ...segments: (string | undefined)[]): string {\n const parts = [base];\n for (const segment of segments) {\n if (segment !== undefined) {\n parts.push(segment);\n }\n }\n return parts.join('/');\n }\n\n protected async paginate<T>(\n path: string,\n params?: PaginationQueryDto & Record<string, any>,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<T>> {\n return this.client.get<PaginatedResponseDto<T>>(path, params, options);\n }\n}","import {\n CurrentSessionResponse,\n InvitationValidationResponse,\n LoginDto,\n LoginResponseDto,\n RegisterCollaboratorDto,\n RegisterOwnerDto,\n ResendVerificationDto,\n VerifyEmailDto,\n ChangePasswordDto,\n ChangePasswordResponseDto,\n RequestPasswordResetDto,\n RequestPasswordResetResponseDto,\n VerifyResetCodeDto,\n VerifyResetCodeResponseDto,\n ResetPasswordDto,\n ResetPasswordResponseDto,\n ResendResetCodeDto,\n ResendResetCodeResponseDto,\n} from '../models/auth';\nimport { SubscriptionPlan } from '../models/subscriptions';\nimport { RequestOptions } from '../types';\nimport { BaseResource } from './base';\n\nexport class AuthResource extends BaseResource {\n private basePath = 'auth';\n\n async registerOwner(data: RegisterOwnerDto, options?: RequestOptions): Promise<void> {\n return this.client.post(`${this.basePath}/register/owner`, data, options);\n }\n\n async login(data: LoginDto, options?: RequestOptions): Promise<LoginResponseDto> {\n return this.client.post<LoginResponseDto>(`${this.basePath}/login`, data, options);\n }\n\n async refreshToken(refreshToken: string, options?: RequestOptions): Promise<LoginResponseDto> {\n return this.client.post<LoginResponseDto>(`${this.basePath}/refresh`, { refresh_token: refreshToken }, options);\n }\n\n async verifyEmail(\n data: VerifyEmailDto,\n options?: RequestOptions,\n ): Promise<{ success: boolean; message: string }> {\n return this.client.post(`${this.basePath}/verify-email`, data, options);\n }\n\n async resendVerification(\n data: ResendVerificationDto,\n options?: RequestOptions,\n ): Promise<{ success: boolean; message: string }> {\n console.log('the path', `${this.basePath}/resend-verification`);\n\n return this.client.post(`${this.basePath}/resend-verification`, data, options);\n }\n\n\n async getSubscriptionPlans(options?: RequestOptions): Promise<{ data: SubscriptionPlan[] }> {\n return this.client.get(`${this.basePath}/subscription-plans`, options);\n }\n\n async validateInvitation(\n token: string,\n options?: RequestOptions,\n ): Promise<InvitationValidationResponse> {\n return this.client.get(`${this.basePath}/invitation/${token}`, options);\n }\n\n async registerCollaborator(\n data: RegisterCollaboratorDto,\n options?: RequestOptions,\n ): Promise<LoginResponseDto> {\n return this.client.post<LoginResponseDto>(\n `${this.basePath}/register/collaborator`,\n data,\n options,\n );\n }\n\n async getCurrentSession(options?: RequestOptions): Promise<CurrentSessionResponse> {\n return this.client.get<CurrentSessionResponse>(`${this.basePath}/current-session`, options);\n }\n\n async changePassword(\n data: ChangePasswordDto,\n options?: RequestOptions,\n ): Promise<ChangePasswordResponseDto> {\n return this.client.post<ChangePasswordResponseDto>(\n `${this.basePath}/change-password`,\n data,\n options,\n );\n }\n\n async requestPasswordReset(\n data: RequestPasswordResetDto,\n options?: RequestOptions,\n ): Promise<RequestPasswordResetResponseDto> {\n return this.client.post<RequestPasswordResetResponseDto>(\n `${this.basePath}/password-reset/request`,\n data,\n options,\n );\n }\n\n async verifyResetCode(\n data: VerifyResetCodeDto,\n options?: RequestOptions,\n ): Promise<VerifyResetCodeResponseDto> {\n return this.client.post<VerifyResetCodeResponseDto>(\n `${this.basePath}/password-reset/verify-code`,\n data,\n options,\n );\n }\n\n async resetPassword(\n data: ResetPasswordDto,\n options?: RequestOptions,\n ): Promise<ResetPasswordResponseDto> {\n return this.client.post<ResetPasswordResponseDto>(\n `${this.basePath}/password-reset/reset`,\n data,\n options,\n );\n }\n\n async resendResetCode(\n data: ResendResetCodeDto,\n options?: RequestOptions,\n ): Promise<ResendResetCodeResponseDto> {\n return this.client.post<ResendResetCodeResponseDto>(\n `${this.basePath}/password-reset/resend-code`,\n data,\n options,\n );\n }\n}\n","import { BaseResource } from './base';\nimport { Organization, UpdateOrganizationDto, OrganizationStats, OrganizationWithDetails } from '../models/organizations';\nimport { RequestOptions } from '../types';\n\nexport class OrganizationsResource extends BaseResource {\n private basePath = 'organizations';\n\n async getOrganization(id: string, options?: RequestOptions): Promise<Organization> {\n return this.client.get<Organization>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateOrganization(\n id: string, \n data: UpdateOrganizationDto, \n options?: RequestOptions\n ): Promise<Organization> {\n return this.client.put<Organization>(`${this.basePath}/${id}`, data, options);\n }\n\n async getOrganizationStats(id: string, options?: RequestOptions): Promise<OrganizationStats> {\n return this.client.get<OrganizationStats>(`${this.basePath}/${id}/stats`, undefined, options);\n }\n\n async listOrganizations(options?: RequestOptions): Promise<OrganizationWithDetails[]> {\n return this.client.get<OrganizationWithDetails[]>(`${this.basePath}/list`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport { Gym, CreateGymDto, UpdateGymDto, GymStats, UpdateGymScheduleDto, UpdateGymSocialMediaDto } from '../models/gyms';\nimport { RequestOptions } from '../types';\n\nexport class GymsResource extends BaseResource {\n private basePath = 'gyms';\n\n async createGym(\n data: CreateGymDto, \n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.post<Gym>(\n this.basePath, \n data, \n options\n );\n }\n\n async getOrganizationGyms(\n options?: RequestOptions\n ): Promise<Gym[]> {\n return this.client.get<Gym[]>(\n this.basePath,\n undefined,\n options\n );\n }\n\n async getGym(id: string, options?: RequestOptions): Promise<Gym> {\n return this.client.get<Gym>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateGym(\n id: string,\n data: UpdateGymDto,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}`, data, options);\n }\n\n async getGymStats(id: string, options?: RequestOptions): Promise<GymStats> {\n return this.client.get<GymStats>(`${this.basePath}/${id}/stats`, undefined, options);\n }\n\n async toggleGymStatus(id: string, options?: RequestOptions): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}/toggle-status`, undefined, options);\n }\n\n async updateCurrentGym(\n data: Partial<{\n name?: string;\n address?: string;\n phone?: string;\n email?: string;\n assetId?: string;\n }>,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/current`, data, options);\n }\n\n async updateGymSchedule(\n id: string,\n data: UpdateGymScheduleDto,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}/schedule`, data, options);\n }\n\n async updateGymSocialMedia(\n id: string,\n data: UpdateGymSocialMediaDto,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}/social-media`, data, options);\n }\n}","import { BaseResource } from './base';\nimport { \n Client, \n CreateClientDto, \n UpdateClientDto, \n ClientStats,\n ClientStat,\n SearchClientsParams,\n ClientSearchForCheckInResponse\n} from '../models/clients';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class ClientsResource extends BaseResource {\n private basePath = 'clients';\n\n async createClient(data: CreateClientDto, options?: RequestOptions): Promise<Client> {\n return this.client.post<Client>(this.basePath, data, options);\n }\n\n async searchClients(\n params?: SearchClientsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Client>> {\n \n return this.paginate<Client>(this.basePath, params, options);\n }\n\n async getClient(id: string, options?: RequestOptions): Promise<Client> {\n return this.client.get<Client>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateClient(\n id: string,\n data: UpdateClientDto,\n options?: RequestOptions\n ): Promise<Client> {\n return this.client.put<Client>(`${this.basePath}/${id}`, data, options);\n }\n\n async toggleClientStatus(id: string, options?: RequestOptions): Promise<Client> {\n return this.client.put<Client>(`${this.basePath}/${id}/toggle-status`, undefined, options);\n }\n\n async getClientStats(id: string, options?: RequestOptions): Promise<ClientStats> {\n return this.client.get<ClientStats>(`${this.basePath}/${id}/stats`, undefined, options);\n }\n\n async getClientStat(id: string, statKey: string, options?: RequestOptions): Promise<ClientStat> {\n return this.client.get<ClientStat>(`${this.basePath}/${id}/stats/${statKey}`, undefined, options);\n }\n\n async getClientStatsByCategory(id: string, category: string, options?: RequestOptions): Promise<ClientStat[]> {\n return this.client.get<ClientStat[]>(`${this.basePath}/${id}/stats/category/${category}`, undefined, options);\n }\n\n async getAvailableStats(options?: RequestOptions): Promise<ClientStat[]> {\n return this.client.get<ClientStat[]>(`${this.basePath}/stats/available`, undefined, options);\n }\n\n async searchClientsForCheckIn(\n params?: SearchClientsParams,\n options?: RequestOptions\n ): Promise<ClientSearchForCheckInResponse> {\n // This endpoint automatically includes contract status and only active clients\n return this.client.get<ClientSearchForCheckInResponse>(\n `${this.basePath}/search/check-in`,\n params,\n options\n );\n }\n}","import { BaseResource } from './base';\nimport { \n MembershipPlan, \n CreateMembershipPlanDto, \n UpdateMembershipPlanDto, \n MembershipPlanStats,\n GetMembershipPlansParams \n} from '../models/membership-plans';\nimport { RequestOptions } from '../types';\n\nexport class MembershipPlansResource extends BaseResource {\n private basePath = 'membership-plans';\n\n async createMembershipPlan(\n data: CreateMembershipPlanDto, \n options?: RequestOptions\n ): Promise<MembershipPlan> {\n return this.client.post<MembershipPlan>(this.basePath, data, options);\n }\n\n async getGymMembershipPlans(\n params?: GetMembershipPlansParams,\n options?: RequestOptions\n ): Promise<MembershipPlan[]> {\n return this.client.get<MembershipPlan[]>(this.basePath, params, options);\n }\n\n async getMembershipPlan(id: string, options?: RequestOptions): Promise<MembershipPlan> {\n return this.client.get<MembershipPlan>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateMembershipPlan(\n id: string,\n data: UpdateMembershipPlanDto,\n options?: RequestOptions\n ): Promise<MembershipPlan> {\n return this.client.put<MembershipPlan>(`${this.basePath}/${id}`, data, options);\n }\n\n async deleteMembershipPlan(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getMembershipPlanStats(\n id: string, \n options?: RequestOptions\n ): Promise<MembershipPlanStats> {\n return this.client.get<MembershipPlanStats>(\n `${this.basePath}/${id}/stats`, \n undefined, \n options\n );\n }\n}","import { BaseResource } from './base';\nimport { \n Contract, \n CreateContractDto, \n RenewContractDto, \n FreezeContractDto,\n GetContractsParams \n} from '../models/contracts';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class ContractsResource extends BaseResource {\n private basePath = 'contracts';\n\n async createContract(data: CreateContractDto, options?: RequestOptions): Promise<Contract> {\n return this.client.post<Contract>(this.basePath, data, options);\n }\n\n async getGymContracts(\n params?: GetContractsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Contract>> {\n return this.paginate<Contract>(this.basePath, params, options);\n }\n\n async getContract(id: string, options?: RequestOptions): Promise<Contract> {\n return this.client.get<Contract>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async getClientContracts(\n clientId: string,\n options?: RequestOptions\n ): Promise<Contract[]> {\n return this.client.get<Contract[]>(\n `${this.basePath}/client/${clientId}`, \n undefined, \n options\n );\n }\n\n async renewContract(\n id: string,\n data: RenewContractDto,\n options?: RequestOptions\n ): Promise<Contract> {\n return this.client.post<Contract>(`${this.basePath}/${id}/renew`, data, options);\n }\n\n async freezeContract(\n id: string,\n data: FreezeContractDto,\n options?: RequestOptions\n ): Promise<Contract> {\n return this.client.post<Contract>(`${this.basePath}/${id}/freeze`, data, options);\n }\n\n async cancelContract(id: string, data: { reason: string }, options?: RequestOptions): Promise<Contract> {\n return this.client.put<Contract>(`${this.basePath}/${id}/cancel`, data, options);\n }\n}","import { BaseResource } from './base';\nimport {\n DashboardStats,\n ExpiringContract,\n ContractsRevenue,\n SalesRevenue,\n Debts,\n CheckIns,\n NewClients,\n DateRangeParams,\n} from '../models/dashboard';\n\nexport class DashboardResource extends BaseResource {\n /**\n * Get dashboard statistics (lightweight counts only)\n * @returns Dashboard statistics including client and contract counts\n */\n async getStats(): Promise<DashboardStats> {\n return this.client.get<DashboardStats>('/dashboard/stats');\n }\n\n /**\n * Get contracts revenue within date range\n * @param params Optional date range parameters\n * @returns Contracts revenue data for the specified period\n */\n async getContractsRevenue(params?: DateRangeParams): Promise<ContractsRevenue> {\n return this.client.get<ContractsRevenue>('/dashboard/contracts-revenue', params);\n }\n\n /**\n * Get sales revenue within date range\n * @param params Optional date range parameters\n * @returns Sales revenue data for the specified period\n */\n async getSalesRevenue(params?: DateRangeParams): Promise<SalesRevenue> {\n return this.client.get<SalesRevenue>('/dashboard/sales-revenue', params);\n }\n\n /**\n * Get total debts within date range\n * @param params Optional date range parameters\n * @returns Outstanding debts data for the specified period\n */\n async getDebts(params?: DateRangeParams): Promise<Debts> {\n return this.client.get<Debts>('/dashboard/debts', params);\n }\n\n /**\n * Get check-ins count within date range\n * @param params Optional date range parameters\n * @returns Check-ins data for the specified period\n */\n async getCheckIns(params?: DateRangeParams): Promise<CheckIns> {\n return this.client.get<CheckIns>('/dashboard/check-ins', params);\n }\n\n /**\n * Get new clients count within date range\n * @param params Optional date range parameters\n * @returns New clients data for the specified period\n */\n async getNewClients(params?: DateRangeParams): Promise<NewClients> {\n return this.client.get<NewClients>('/dashboard/new-clients', params);\n }\n\n /**\n * Get expiring contracts within date range\n * @param limit Maximum number of contracts to return (default: 10)\n * @param params Optional date range parameters\n * @returns List of contracts expiring in the specified period\n */\n async getExpiringContracts(\n limit: number = 10,\n params?: DateRangeParams,\n ): Promise<ExpiringContract[]> {\n return this.client.get<ExpiringContract[]>('/dashboard/expiring-contracts', {\n limit,\n ...params,\n });\n }\n}","import { BaseResource } from './base';\nimport { \n Evaluation, \n CreateEvaluationDto, \n UpdateEvaluationDto,\n GetClientEvaluationsParams,\n EvaluationReport\n} from '../models/evaluations';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class EvaluationsResource extends BaseResource {\n private basePath = 'evaluations';\n\n async createEvaluation(\n data: CreateEvaluationDto, \n options?: RequestOptions\n ): Promise<Evaluation> {\n return this.client.post<Evaluation>(this.basePath, data, options);\n }\n\n async getEvaluation(id: string, options?: RequestOptions): Promise<Evaluation> {\n return this.client.get<Evaluation>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateEvaluation(\n id: string,\n data: UpdateEvaluationDto,\n options?: RequestOptions\n ): Promise<Evaluation> {\n return this.client.put<Evaluation>(`${this.basePath}/${id}`, data, options);\n }\n\n async deleteEvaluation(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getClientEvaluations(\n clientId: string,\n params?: GetClientEvaluationsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Evaluation>> {\n return this.paginate<Evaluation>(\n `${this.basePath}/client/${clientId}`,\n params,\n options\n );\n }\n\n async getGymEvaluationStats(options?: RequestOptions): Promise<any> {\n return this.client.get(`${this.basePath}/gym/stats`, undefined, options);\n }\n\n async generateEvaluationReport(\n id: string,\n options?: RequestOptions\n ): Promise<EvaluationReport> {\n return this.client.get<EvaluationReport>(\n `${this.basePath}/${id}/report`,\n undefined,\n options\n );\n }\n}","import { BaseResource } from './base';\nimport { \n CheckIn, \n CreateCheckInDto, \n SearchCheckInsParams,\n GetCheckInStatsParams,\n CheckInStats,\n GetClientCheckInHistoryParams,\n CurrentlyInGymResponse,\n CheckInListResponse,\n ClientCheckInHistory\n} from '../models/check-ins';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class CheckInsResource extends BaseResource {\n private basePath = 'check-ins';\n\n async createCheckIn(data: CreateCheckInDto, options?: RequestOptions): Promise<CheckIn> {\n return this.client.post<CheckIn>(this.basePath, data, options);\n }\n\n async searchCheckIns(\n params?: SearchCheckInsParams,\n options?: RequestOptions\n ): Promise<CheckInListResponse> {\n return this.client.get<CheckInListResponse>(this.basePath, params, options);\n }\n\n async getCurrentlyInGym(options?: RequestOptions): Promise<CurrentlyInGymResponse> {\n return this.client.get<CurrentlyInGymResponse>(`${this.basePath}/current`, undefined, options);\n }\n\n async getCheckIn(id: string, options?: RequestOptions): Promise<CheckIn> {\n return this.client.get<CheckIn>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async deleteCheckIn(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getGymCheckInStats(\n params: GetCheckInStatsParams,\n options?: RequestOptions\n ): Promise<CheckInStats> {\n return this.client.get<CheckInStats>(\n `${this.basePath}/stats/${params.period}`,\n undefined,\n options\n );\n }\n\n async getClientCheckInHistory(\n clientId: string,\n params?: GetClientCheckInHistoryParams,\n options?: RequestOptions\n ): Promise<ClientCheckInHistory> {\n return this.client.get<ClientCheckInHistory>(\n `${this.basePath}/client/${clientId}/history`,\n params,\n options\n );\n }\n}","import { BaseResource } from './base';\nimport { \n Invitation, \n CreateInvitationDto, \n AcceptInvitationDto,\n GetGymInvitationsParams \n} from '../models/invitations';\nimport { RequestOptions } from '../types';\n\nexport class InvitationsResource extends BaseResource {\n private basePath = 'invitations';\n\n async createInvitation(\n data: CreateInvitationDto, \n options?: RequestOptions\n ): Promise<Invitation> {\n return this.client.post<Invitation>(this.basePath, data, options);\n }\n\n async getGymInvitations(\n params: GetGymInvitationsParams,\n options?: RequestOptions\n ): Promise<Invitation[]> {\n return this.client.get<Invitation[]>(this.basePath, params, options);\n }\n\n async acceptInvitation(\n token: string,\n data: AcceptInvitationDto,\n options?: RequestOptions\n ): Promise<void> {\n return this.client.post<void>(`${this.basePath}/${token}/accept`, data, options);\n }\n\n async cancelInvitation(id: string, options?: RequestOptions): Promise<void> {\n return this.client.put<void>(`${this.basePath}/${id}/cancel`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport { \n Lead, \n CreateLeadDto, \n UpdateLeadDto,\n SearchLeadsParams,\n LeadStats \n} from '../models/leads';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class LeadsResource extends BaseResource {\n private basePath = 'leads';\n\n async createLead(data: CreateLeadDto, options?: RequestOptions): Promise<Lead> {\n return this.client.post<Lead>(this.basePath, data, options);\n }\n\n async searchLeads(\n params?: SearchLeadsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Lead>> {\n return this.paginate<Lead>(this.basePath, params, options);\n }\n\n async getLead(id: string, options?: RequestOptions): Promise<Lead> {\n return this.client.get<Lead>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateLead(\n id: string,\n data: UpdateLeadDto,\n options?: RequestOptions\n ): Promise<Lead> {\n return this.client.put<Lead>(`${this.basePath}/${id}`, data, options);\n }\n\n async getLeadStats(options?: RequestOptions): Promise<LeadStats> {\n return this.client.get<LeadStats>(`${this.basePath}/stats/gym`, undefined, options);\n }\n\n async convertLead(id: string, options?: RequestOptions): Promise<{ clientId: string }> {\n return this.client.post<{ clientId: string }>(\n `${this.basePath}/${id}/convert`,\n undefined,\n options\n );\n }\n}","import { BaseResource } from './base';\nimport type { AssetResponseDto } from '../models/assets';\n\nexport class AssetsResource extends BaseResource {\n /**\n * Upload a new asset\n */\n async upload(data: {\n file: File;\n description?: string;\n metadata?: Record<string, any>;\n }): Promise<AssetResponseDto> {\n const formData = new FormData();\n formData.append('file', data.file);\n\n if (data.description) {\n formData.append('description', data.description);\n }\n\n if (data.metadata) {\n formData.append('metadata', JSON.stringify(data.metadata));\n }\n\n return await this.client.post<AssetResponseDto>('/assets/upload', formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n });\n }\n\n /**\n * Get a single asset by ID\n */\n async findOne(id: string): Promise<AssetResponseDto> {\n return await this.client.get<AssetResponseDto>(`/assets/${id}`);\n }\n\n /**\n * Get multiple assets by IDs\n */\n async findByIds(ids: string[]): Promise<AssetResponseDto[]> {\n if (!ids || ids.length === 0) {\n return [];\n }\n\n // El segundo parámetro del get son los params directamente\n return await this.client.get<AssetResponseDto[]>('/assets/by-ids', {\n ids: ids.join(',')\n });\n }\n\n /**\n * Get all assets for the current gym\n */\n async findAll(): Promise<AssetResponseDto[]> {\n return await this.client.get<AssetResponseDto[]>('/assets');\n }\n\n /**\n * Delete an asset\n */\n async delete(id: string): Promise<void> {\n await this.client.delete(`/assets/${id}`);\n }\n\n /**\n * Get a signed download URL for an asset\n */\n async getDownloadUrl(id: string): Promise<{ url: string; filename: string }> {\n return await this.client.get<{ url: string; filename: string }>(`/assets/${id}/download-url`);\n }\n\n /**\n * Download an asset as a blob\n */\n async download(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/assets/${id}/download`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n\n /**\n * Get the render URL for an asset (for inline display)\n * This returns the URL directly without making an API call\n */\n getRenderUrl(id: string): string {\n return `${this.client.getBaseUrl()}/assets/${id}/render`;\n }\n\n /**\n * Get asset blob for rendering/preview\n */\n async render(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/assets/${id}/render`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n}\n","import { BaseResource } from './base';\nimport type { FileResponseDto } from '../models/files';\n\nexport class FilesResource extends BaseResource {\n /**\n * Upload a new file\n */\n async upload(data: {\n file: File;\n description?: string;\n metadata?: Record<string, any>;\n }): Promise<FileResponseDto> {\n const formData = new FormData();\n formData.append('file', data.file);\n\n if (data.description) {\n formData.append('description', data.description);\n }\n\n if (data.metadata) {\n formData.append('metadata', JSON.stringify(data.metadata));\n }\n\n return await this.client.post<FileResponseDto>('/files/upload', formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n });\n }\n\n /**\n * Get all files for the current user\n */\n async findAll(): Promise<FileResponseDto[]> {\n return await this.client.get<FileResponseDto[]>('/files');\n }\n\n /**\n * Get a single file by ID\n */\n async findOne(id: string): Promise<FileResponseDto> {\n return await this.client.get<FileResponseDto>(`/files/${id}`);\n }\n\n /**\n * Get multiple files by IDs\n */\n async findByIds(ids: string[]): Promise<FileResponseDto[]> {\n if (!ids || ids.length === 0) {\n return [];\n }\n\n // The second parameter of get is the params directly\n return await this.client.get<FileResponseDto[]>('/files/by-ids', {\n ids: ids.join(',')\n });\n }\n\n /**\n * Delete a file\n */\n async delete(id: string): Promise<void> {\n await this.client.delete(`/files/${id}`);\n }\n\n /**\n * Download a file as a blob\n */\n async download(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/files/${id}/download`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n\n /**\n * Get the render URL for a file (for inline display)\n * This returns the URL directly without making an API call\n */\n getRenderUrl(id: string): string {\n return `${this.client.getBaseUrl()}/files/${id}/render`;\n }\n\n /**\n * Get file blob for rendering/preview\n */\n async render(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/files/${id}/render`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n}","import { BaseResource } from './base';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\nimport { PaginationQueryDto } from '../types';\n\nexport interface SearchCatalogParams extends PaginationQueryDto {\n search?: string;\n city?: string;\n state?: string;\n latitude?: string;\n longitude?: string;\n radius?: string;\n}\n\nexport interface GetFeaturedGymsParams {\n limit: string;\n}\n\nexport interface CatalogGym {\n id: string;\n name: string;\n slug: string;\n address?: string;\n city?: string;\n state?: string;\n phone?: string;\n email?: string;\n amenities?: any;\n settings?: any;\n}\n\nexport interface CityWithGyms {\n city: string;\n state: string;\n count: number;\n}\n\nexport class PublicCatalogResource extends BaseResource {\n private basePath = 'catalog';\n\n async searchCatalog(\n params?: SearchCatalogParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<CatalogGym>> {\n return this.paginate<CatalogGym>(`${this.basePath}/search`, params, options);\n }\n\n async getFeaturedGyms(\n params: GetFeaturedGymsParams,\n options?: RequestOptions\n ): Promise<CatalogGym[]> {\n return this.client.get<CatalogGym[]>(`${this.basePath}/featured`, params, options);\n }\n\n async getCitiesWithGyms(options?: RequestOptions): Promise<CityWithGyms[]> {\n return this.client.get<CityWithGyms[]>(`${this.basePath}/cities`, undefined, options);\n }\n\n async getGymBySlug(slug: string, options?: RequestOptions): Promise<CatalogGym> {\n return this.client.get<CatalogGym>(`${this.basePath}/${slug}`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport { RequestOptions } from '../types';\n\nexport interface HealthResponse {\n status: string;\n timestamp: string;\n}\n\nexport interface ReadyResponse {\n status: string;\n services: {\n database: boolean;\n cache: boolean;\n storage: boolean;\n };\n}\n\nexport class HealthResource extends BaseResource {\n private basePath = 'health';\n\n async health(options?: RequestOptions): Promise<HealthResponse> {\n return this.client.get<HealthResponse>(this.basePath, undefined, options);\n }\n\n async ready(options?: RequestOptions): Promise<ReadyResponse> {\n return this.client.get<ReadyResponse>(`${this.basePath}/ready`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport {\n StartOnboardingData,\n StartOnboardingResponse,\n UpdateGymSettingsData,\n ConfigureFeaturesData,\n CompleteGuidedSetupData,\n OnboardingStatus,\n OnboardingResponse,\n} from '../models/onboarding';\n\nexport class OnboardingResource extends BaseResource {\n /**\n * Creates owner account, organization, and initial gym\n * Now also sends verification and organization codes via email\n */\n async start(data: StartOnboardingData): Promise<StartOnboardingResponse> {\n const response = await this.client.post<StartOnboardingResponse>('/onboarding/start', data);\n \n // Store tokens after successful onboarding start\n if (response.access_token) {\n this.client.setAuthToken(response.access_token);\n }\n \n return response;\n }\n\n /**\n * Updates basic gym settings (step 2 of onboarding)\n * Configure basic gym information like name, address, etc.\n */\n async updateGymSettings(data: UpdateGymSettingsData): Promise<OnboardingResponse> {\n return this.client.put<OnboardingResponse>('/onboarding/gym-settings', data);\n }\n\n /**\n * Configure gym features (step 3 of onboarding)\n * Enable/disable various management features\n */\n async configureFeatures(data: ConfigureFeaturesData): Promise<OnboardingResponse> {\n return this.client.put<OnboardingResponse>('/onboarding/configure-features', data);\n }\n\n /**\n * Mark onboarding as complete\n */\n async completeSetup(data: CompleteGuidedSetupData): Promise<OnboardingResponse> {\n return this.client.post<OnboardingResponse>('/onboarding/complete', data);\n }\n\n /**\n * Get current onboarding status\n * Check progress and next steps\n */\n async getStatus(gymId: string): Promise<OnboardingStatus> {\n return this.client.get<OnboardingStatus>(`/onboarding/status/${gymId}`);\n }\n}","import { BaseResource } from './base';\nimport { \n Product,\n ProductCategory,\n StockMovement,\n CreateProductDto, \n CreateServiceDto,\n UpdateProductDto,\n UpdateStockDto,\n CreateProductCategoryDto,\n UpdateProductCategoryDto,\n SearchProductsParams\n} from '../models/products';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class ProductsResource extends BaseResource {\n private basePath = 'products';\n\n // Product Category Methods\n async createCategory(\n data: CreateProductCategoryDto, \n options?: RequestOptions\n ): Promise<ProductCategory> {\n return this.client.post<ProductCategory>(`${this.basePath}/categories`, data, options);\n }\n\n async getCategories(options?: RequestOptions): Promise<ProductCategory[]> {\n return this.client.get<ProductCategory[]>(`${this.basePath}/categories`, undefined, options);\n }\n\n async updateCategory(\n id: string,\n data: UpdateProductCategoryDto,\n options?: RequestOptions\n ): Promise<ProductCategory> {\n return this.client.put<ProductCategory>(`${this.basePath}/categories/${id}`, data, options);\n }\n\n async deleteCategory(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/categories/${id}`, options);\n }\n\n // Product Methods\n async createProduct(data: CreateProductDto, options?: RequestOptions): Promise<Product> {\n return this.client.post<Product>(this.basePath, data, options);\n }\n\n async createService(data: CreateServiceDto, options?: RequestOptions): Promise<Product> {\n return this.client.post<Product>(`${this.basePath}/services`, data, options);\n }\n\n async searchProducts(\n params?: SearchProductsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Product>> {\n return this.paginate<Product>(this.basePath, params, options);\n }\n\n async getProduct(id: string, options?: RequestOptions): Promise<Product> {\n return this.client.get<Product>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateProduct(\n id: string,\n data: UpdateProductDto,\n options?: RequestOptions\n ): Promise<Product> {\n return this.client.put<Product>(`${this.basePath}/${id}`, data, options);\n }\n\n async deleteProduct(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async toggleProductStatus(id: string, options?: RequestOptions): Promise<Product> {\n return this.client.patch<Product>(`${this.basePath}/${id}/toggle-status`, undefined, options);\n }\n\n async updateStock(\n id: string,\n data: UpdateStockDto,\n options?: RequestOptions\n ): Promise<Product> {\n return this.client.patch<Product>(`${this.basePath}/${id}/stock`, data, options);\n }\n\n async getLowStockProducts(\n threshold: number = 10,\n options?: RequestOptions\n ): Promise<Product[]> {\n return this.client.get<Product[]>(\n `${this.basePath}/low-stock`,\n { threshold },\n options\n );\n }\n\n async getProductStockMovements(\n id: string,\n options?: RequestOptions\n ): Promise<StockMovement[]> {\n return this.client.get<StockMovement[]>(`${this.basePath}/${id}/stock-movements`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport {\n Sale,\n CreateSaleDto,\n UpdateSaleDto,\n UpdatePaymentStatusDto,\n PaySaleDto,\n SearchSalesParams,\n SalesStats,\n TopSellingProduct,\n CustomerSalesReport\n} from '../models/sales';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class SalesResource extends BaseResource {\n private basePath = 'sales';\n\n async createSale(data: CreateSaleDto, options?: RequestOptions): Promise<Sale> {\n return this.client.post<Sale>(this.basePath, data, options);\n }\n\n async searchSales(\n params?: SearchSalesParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Sale>> {\n return this.paginate<Sale>(this.basePath, params, options);\n }\n\n async getSale(id: string, options?: RequestOptions): Promise<Sale> {\n return this.client.get<Sale>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateSale(\n id: string,\n data: UpdateSaleDto,\n options?: RequestOptions\n ): Promise<Sale> {\n return this.client.put<Sale>(`${this.basePath}/${id}`, data, options);\n }\n\n async updatePaymentStatus(\n id: string,\n paymentStatus: 'paid' | 'unpaid',\n options?: RequestOptions\n ): Promise<Sale> {\n return this.client.put<Sale>(`${this.basePath}/${id}/payment-status`, { paymentStatus }, options);\n }\n\n async paySale(\n id: string,\n data: PaySaleDto,\n options?: RequestOptions\n ): Promise<Sale> {\n return this.client.post<Sale>(`${this.basePath}/${id}/payment`, data, options);\n }\n\n async deleteSale(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getSalesStats(\n startDate?: string,\n endDate?: string,\n options?: RequestOptions\n ): Promise<SalesStats> {\n const params: Record<string, string> = {};\n if (startDate) params.startDate = startDate;\n if (endDate) params.endDate = endDate;\n\n return this.client.get<SalesStats>(\n `${this.basePath}/stats`,\n Object.keys(params).length > 0 ? params : undefined,\n options\n );\n }\n\n async getTopSellingProducts(\n limit: number = 10,\n startDate?: string,\n endDate?: string,\n options?: RequestOptions\n ): Promise<TopSellingProduct[]> {\n const params: Record<string, string | number> = { limit };\n if (startDate) params.startDate = startDate;\n if (endDate) params.endDate = endDate;\n\n return this.client.get<TopSellingProduct[]>(\n `${this.basePath}/top-products`,\n params,\n options\n );\n }\n\n async getSalesByCustomer(\n startDate?: string,\n endDate?: string,\n options?: RequestOptions\n ): Promise<CustomerSalesReport> {\n const params: Record<string, string> = {};\n if (startDate) params.startDate = startDate;\n if (endDate) params.endDate = endDate;\n\n return this.client.get<CustomerSalesReport>(\n `${this.basePath}/reports/by-customer`,\n Object.keys(params).length > 0 ? params : undefined,\n options\n );\n }\n}","import { BaseResource } from './base';\nimport { \n Supplier,\n CreateSupplierDto, \n UpdateSupplierDto,\n SearchSuppliersParams,\n SuppliersStats\n} from '../models/suppliers';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class SuppliersResource extends BaseResource {\n private basePath = 'suppliers';\n\n async createSupplier(data: CreateSupplierDto, options?: RequestOptions): Promise<Supplier> {\n return this.client.post<Supplier>(this.basePath, data, options);\n }\n\n async searchSuppliers(\n params?: SearchSuppliersParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Supplier>> {\n return this.paginate<Supplier>(this.basePath, params, options);\n }\n\n async getSupplier(id: string, options?: RequestOptions): Promise<Supplier> {\n return this.client.get<Supplier>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateSupplier(\n id: string,\n data: UpdateSupplierDto,\n options?: RequestOptions\n ): Promise<Supplier> {\n return this.client.put<Supplier>(`${this.basePath}/${id}`, data, options);\n }\n\n async deleteSupplier(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getSuppliersStats(options?: RequestOptions): Promise<SuppliersStats> {\n return this.client.get<SuppliersStats>(`${this.basePath}/stats`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport { UserProfileDto, UpdateProfileDto } from '../models/users';\nimport { RequestOptions } from '../types';\n\nexport class UsersResource extends BaseResource {\n /**\n * Get the current user's profile\n * @param options - Request options\n * @returns User profile data\n */\n async getProfile(options?: RequestOptions): Promise<UserProfileDto> {\n return this.client.get<UserProfileDto>('/users/profile', undefined, options);\n }\n\n /**\n * Update the current user's profile\n * @param data - Profile update data\n * @param options - Request options\n * @returns Updated user profile\n */\n async updateProfile(\n data: UpdateProfileDto,\n options?: RequestOptions\n ): Promise<UserProfileDto> {\n return this.client.put<UserProfileDto>('/users/profile', data, options);\n }\n}","import {\n AvailablePlanDto,\n SubscriptionStatusDto,\n AffiliateOrganizationDto,\n CheckLimitResponse,\n} from '../models/subscriptions';\nimport { RequestOptions } from '../types';\nimport { BaseResource } from './base';\n\nexport class SubscriptionsResource extends BaseResource {\n private basePath = 'subscriptions';\n\n /**\n * Get available subscription plans (currently only free plans)\n */\n async getAvailablePlans(options?: RequestOptions): Promise<AvailablePlanDto[]> {\n return this.client.get<AvailablePlanDto[]>(`${this.basePath}/plans`, undefined, options);\n }\n\n /**\n * Get subscription status for an organization\n */\n async getSubscriptionStatus(\n organizationId: string,\n options?: RequestOptions,\n ): Promise<SubscriptionStatusDto> {\n return this.client.get<SubscriptionStatusDto>(\n `${this.basePath}/organizations/${organizationId}/status`,\n undefined,\n options,\n );\n }\n\n /**\n * Affiliate organization to a subscription plan\n */\n async affiliateOrganization(\n organizationId: string,\n data: AffiliateOrganizationDto,\n options?: RequestOptions,\n ): Promise<SubscriptionStatusDto> {\n return this.client.post<SubscriptionStatusDto>(\n `${this.basePath}/organizations/${organizationId}/affiliate`,\n data,\n options,\n );\n }\n\n /**\n * Check subscription limits\n * @param organizationId Organization ID\n * @param limitType Type of limit to check: 'gyms', 'clients', or 'users'\n */\n async checkSubscriptionLimit(\n organizationId: string,\n limitType: 'gyms' | 'clients' | 'users',\n options?: RequestOptions,\n ): Promise<CheckLimitResponse> {\n return this.client.get<CheckLimitResponse>(\n `${this.basePath}/organizations/${organizationId}/limits/${limitType}`,\n undefined,\n options,\n );\n }\n}","import { BaseResource } from './base';\nimport { \n PaymentMethod,\n CreatePaymentMethodDto, \n UpdatePaymentMethodDto,\n SearchPaymentMethodsParams,\n PaymentMethodStats\n} from '../models/payment-methods';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class PaymentMethodsResource extends BaseResource {\n private basePath = 'payment-methods';\n\n async createPaymentMethod(data: CreatePaymentMethodDto, options?: RequestOptions): Promise<PaymentMethod> {\n return this.client.post<PaymentMethod>(this.basePath, data, options);\n }\n\n async searchPaymentMethods(\n params?: SearchPaymentMethodsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<PaymentMethod>> {\n return this.paginate<PaymentMethod>(this.basePath, params, options);\n }\n\n async getPaymentMethod(id: string, options?: RequestOptions): Promise<PaymentMethod> {\n return this.client.get<PaymentMethod>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updatePaymentMethod(\n id: string,\n data: UpdatePaymentMethodDto,\n options?: RequestOptions\n ): Promise<PaymentMethod> {\n return this.client.put<PaymentMethod>(`${this.basePath}/${id}`, data, options);\n }\n\n async deletePaymentMethod(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async togglePaymentMethod(id: string, options?: RequestOptions): Promise<PaymentMethod> {\n return this.client.put<PaymentMethod>(`${this.basePath}/${id}/toggle`, undefined, options);\n }\n\n async getPaymentMethodStats(options?: RequestOptions): Promise<PaymentMethodStats> {\n return this.client.get<PaymentMethodStats>(`${this.basePath}/stats`, undefined, options);\n }\n}","import { ApiClient } from './client';\nimport { GymSpaceConfig } from './types';\nimport {\n AuthResource,\n OrganizationsResource,\n GymsResource,\n ClientsResource,\n MembershipPlansResource,\n ContractsResource,\n DashboardResource,\n EvaluationsResource,\n CheckInsResource,\n InvitationsResource,\n LeadsResource,\n AssetsResource,\n FilesResource,\n PublicCatalogResource,\n HealthResource,\n OnboardingResource,\n ProductsResource,\n SalesResource,\n SuppliersResource,\n UsersResource,\n SubscriptionsResource,\n PaymentMethodsResource,\n} from './resources';\n\nexport class GymSpaceSdk {\n private client: ApiClient;\n \n // Resources\n public auth: AuthResource;\n public organizations: OrganizationsResource;\n public gyms: GymsResource;\n public clients: ClientsResource;\n public membershipPlans: MembershipPlansResource;\n public contracts: ContractsResource;\n public dashboard: DashboardResource;\n public evaluations: EvaluationsResource;\n public checkIns: CheckInsResource;\n public invitations: InvitationsResource;\n public leads: LeadsResource;\n public assets: AssetsResource;\n public files: FilesResource;\n public publicCatalog: PublicCatalogResource;\n public health: HealthResource;\n public onboarding: OnboardingResource;\n public products: ProductsResource;\n public sales: SalesResource;\n public suppliers: SuppliersResource;\n public users: UsersResource;\n public subscriptions: SubscriptionsResource;\n public paymentMethods: PaymentMethodsResource;\n\n constructor(config: GymSpaceConfig) {\n this.client = new ApiClient(config);\n \n // Initialize resources\n this.auth = new AuthResource(this.client);\n this.organizations = new OrganizationsResource(this.client);\n this.gyms = new GymsResource(this.client);\n this.clients = new ClientsResource(this.client);\n this.membershipPlans = new MembershipPlansResource(this.client);\n this.contracts = new ContractsResource(this.client);\n this.dashboard = new DashboardResource(this.client);\n this.evaluations = new EvaluationsResource(this.client);\n this.checkIns = new CheckInsResource(this.client);\n this.invitations = new InvitationsResource(this.client);\n this.leads = new LeadsResource(this.client);\n this.assets = new AssetsResource(this.client);\n this.files = new FilesResource(this.client);\n this.publicCatalog = new PublicCatalogResource(this.client);\n this.health = new HealthResource(this.client);\n this.onboarding = new OnboardingResource(this.client);\n this.products = new ProductsResource(this.client);\n this.sales = new SalesResource(this.client);\n this.suppliers = new SuppliersResource(this.client);\n this.users = new UsersResource(this.client);\n this.subscriptions = new SubscriptionsResource(this.client);\n this.paymentMethods = new PaymentMethodsResource(this.client);\n }\n\n /**\n * Set the authentication token\n */\n setAuthToken(token: string): void {\n this.client.setAuthToken(token);\n }\n\n /**\n * Set the refresh token\n */\n setRefreshToken(token: string | null): void {\n this.client.setRefreshToken(token);\n }\n\n /**\n * Get the current refresh token\n */\n getRefreshToken(): string | null {\n return this.client.getRefreshToken();\n }\n\n /**\n * Set the current gym context\n */\n setGymId(gymId: string): void {\n this.client.setGymId(gymId);\n }\n\n /**\n * Clear authentication\n */\n clearAuth(): void {\n this.client.clearAuth();\n }\n\n /**\n * Get the underlying API client\n */\n getClient(): ApiClient {\n return this.client;\n }\n}","export enum UserType {\n OWNER = 'owner',\n COLLABORATOR = 'collaborator',\n}\n\nexport enum SubscriptionStatus {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n EXPIRED = 'expired',\n PAUSED = 'paused',\n PENDING_UPGRADE = 'pending_upgrade',\n}\n\nexport enum CollaboratorStatus {\n PENDING = 'pending',\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n}\n\nexport enum InvitationStatus {\n PENDING = 'pending',\n ACCEPTED = 'accepted',\n EXPIRED = 'expired',\n}\n\nexport enum ClientStatus {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n}\n\nexport enum PlanStatus {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n ARCHIVED = 'archived',\n}\n\nexport enum ContractStatus {\n PENDING = 'pending',\n ACTIVE = 'active',\n EXPIRING_SOON = 'expiring_soon',\n EXPIRED = 'expired',\n CANCELLED = 'cancelled',\n FOR_RENEW = 'for_renew',\n}\n\nexport enum PaymentFrequency {\n MONTHLY = 'monthly',\n QUARTERLY = 'quarterly',\n ANNUAL = 'annual',\n}\n\nexport enum AssetStatus {\n ACTIVE = 'active',\n DELETED = 'deleted',\n}\n\nexport enum EvaluationType {\n INITIAL = 'initial',\n PROGRESS = 'progress',\n FINAL = 'final',\n}\n\nexport enum EvaluationStatus {\n OPEN = 'open',\n IN_PROGRESS = 'in_progress',\n COMPLETED = 'completed',\n CANCELLED = 'cancelled',\n}\n\nexport enum CommentType {\n PROGRESS_NOTE = 'progress_note',\n PHONE_CALL = 'phone_call',\n MEETING = 'meeting',\n REMINDER = 'reminder',\n OTHER = 'other',\n}\n\nexport enum AssetCategory {\n MEDICAL_DOCUMENT = 'medical_document',\n IDENTIFICATION = 'identification',\n INSURANCE = 'insurance',\n CONTRACT_COPY = 'contract_copy',\n OTHER = 'other',\n}\n\nexport enum ContractAssetType {\n PAYMENT_RECEIPT = 'payment_receipt',\n CONTRACT_DOCUMENT = 'contract_document',\n IDENTIFICATION = 'identification',\n OTHER = 'other',\n}\n\nexport enum EvaluationAssetStage {\n INITIAL = 'initial',\n PROGRESS = 'progress',\n FINAL = 'final',\n}\n\nexport enum EvaluationAssetCategory {\n BODY_PHOTO = 'body_photo',\n MEASUREMENT_PHOTO = 'measurement_photo',\n DOCUMENT = 'document',\n REPORT = 'report',\n OTHER = 'other',\n}\n\nexport enum LeadStatus {\n NEW = 'NEW',\n CONTACTED = 'CONTACTED',\n INTERESTED = 'INTERESTED',\n CONVERTED = 'CONVERTED',\n LOST = 'LOST',\n}","// Permission constants\nexport const PERMISSIONS = {\n // Organizations\n ORGANIZATIONS_CREATE: 'ORGANIZATIONS_CREATE',\n ORGANIZATIONS_READ: 'ORGANIZATIONS_READ',\n ORGANIZATIONS_UPDATE: 'ORGANIZATIONS_UPDATE',\n ORGANIZATIONS_DELETE: 'ORGANIZATIONS_DELETE',\n \n // Gyms\n GYMS_CREATE: 'GYMS_CREATE',\n GYMS_READ: 'GYMS_READ',\n GYMS_UPDATE: 'GYMS_UPDATE',\n GYMS_DELETE: 'GYMS_DELETE',\n \n // Collaborators\n COLLABORATORS_CREATE: 'COLLABORATORS_CREATE',\n COLLABORATORS_READ: 'COLLABORATORS_READ',\n COLLABORATORS_UPDATE: 'COLLABORATORS_UPDATE',\n COLLABORATORS_DELETE: 'COLLABORATORS_DELETE',\n \n // Clients\n CLIENTS_CREATE: 'CLIENTS_CREATE',\n CLIENTS_READ: 'CLIENTS_READ',\n CLIENTS_UPDATE: 'CLIENTS_UPDATE',\n CLIENTS_DELETE: 'CLIENTS_DELETE',\n \n // Contracts\n CONTRACTS_CREATE: 'CONTRACTS_CREATE',\n CONTRACTS_READ: 'CONTRACTS_READ',\n CONTRACTS_UPDATE: 'CONTRACTS_UPDATE',\n CONTRACTS_APPROVE: 'CONTRACTS_APPROVE',\n CONTRACTS_CANCEL: 'CONTRACTS_CANCEL',\n \n // Evaluations\n EVALUATIONS_CREATE: 'EVALUATIONS_CREATE',\n EVALUATIONS_READ: 'EVALUATIONS_READ',\n EVALUATIONS_UPDATE: 'EVALUATIONS_UPDATE',\n EVALUATIONS_DELETE: 'EVALUATIONS_DELETE',\n \n // Check-ins\n CHECKINS_CREATE: 'CHECKINS_CREATE',\n CHECKINS_READ: 'CHECKINS_READ',\n \n // Leads\n LEADS_CREATE: 'LEADS_CREATE',\n LEADS_READ: 'LEADS_READ',\n LEADS_UPDATE: 'LEADS_UPDATE',\n LEADS_DELETE: 'LEADS_DELETE',\n \n // Reports\n REPORTS_VIEW: 'REPORTS_VIEW',\n REPORTS_FINANCIAL: 'REPORTS_FINANCIAL',\n \n // Settings\n SETTINGS_UPDATE: 'SETTINGS_UPDATE',\n \n // Assets\n ASSETS_CREATE: 'ASSETS_CREATE',\n ASSETS_READ: 'ASSETS_READ',\n ASSETS_DELETE: 'ASSETS_DELETE',\n \n // Files\n FILES_CREATE: 'FILES_CREATE',\n FILES_READ: 'FILES_READ',\n FILES_DELETE: 'FILES_DELETE',\n \n // Products\n PRODUCTS_CREATE: 'PRODUCTS_CREATE',\n PRODUCTS_READ: 'PRODUCTS_READ',\n PRODUCTS_UPDATE: 'PRODUCTS_UPDATE',\n PRODUCTS_DELETE: 'PRODUCTS_DELETE',\n \n // Product Categories\n PRODUCT_CATEGORIES_CREATE: 'PRODUCT_CATEGORIES_CREATE',\n PRODUCT_CATEGORIES_READ: 'PRODUCT_CATEGORIES_READ',\n PRODUCT_CATEGORIES_UPDATE: 'PRODUCT_CATEGORIES_UPDATE',\n PRODUCT_CATEGORIES_DELETE: 'PRODUCT_CATEGORIES_DELETE',\n \n // Sales\n SALES_CREATE: 'SALES_CREATE',\n SALES_READ: 'SALES_READ',\n SALES_UPDATE: 'SALES_UPDATE',\n SALES_DELETE: 'SALES_DELETE',\n \n // Suppliers\n SUPPLIERS_CREATE: 'SUPPLIERS_CREATE',\n SUPPLIERS_READ: 'SUPPLIERS_READ',\n SUPPLIERS_UPDATE: 'SUPPLIERS_UPDATE',\n SUPPLIERS_DELETE: 'SUPPLIERS_DELETE',\n \n // Payment Methods\n PAYMENT_METHODS_CREATE: 'PAYMENT_METHODS_CREATE',\n PAYMENT_METHODS_READ: 'PAYMENT_METHODS_READ',\n PAYMENT_METHODS_UPDATE: 'PAYMENT_METHODS_UPDATE',\n PAYMENT_METHODS_DELETE: 'PAYMENT_METHODS_DELETE',\n} as const;\n\n// Role definitions\nexport const ROLE_PERMISSIONS = {\n OWNER: Object.values(PERMISSIONS),\n MANAGER: [\n PERMISSIONS.GYMS_READ,\n PERMISSIONS.COLLABORATORS_READ,\n PERMISSIONS.CLIENTS_CREATE,\n PERMISSIONS.CLIENTS_READ,\n PERMISSIONS.CLIENTS_UPDATE,\n PERMISSIONS.CONTRACTS_CREATE,\n PERMISSIONS.CONTRACTS_READ,\n PERMISSIONS.EVALUATIONS_CREATE,\n PERMISSIONS.EVALUATIONS_READ,\n PERMISSIONS.EVALUATIONS_UPDATE,\n PERMISSIONS.CHECKINS_CREATE,\n PERMISSIONS.CHECKINS_READ,\n PERMISSIONS.REPORTS_VIEW,\n PERMISSIONS.ASSETS_CREATE,\n PERMISSIONS.ASSETS_READ,\n PERMISSIONS.ASSETS_DELETE,\n PERMISSIONS.FILES_CREATE,\n PERMISSIONS.FILES_READ,\n PERMISSIONS.FILES_DELETE,\n PERMISSIONS.PRODUCTS_CREATE,\n PERMISSIONS.PRODUCTS_READ,\n PERMISSIONS.PRODUCTS_UPDATE,\n PERMISSIONS.PRODUCTS_DELETE,\n PERMISSIONS.PRODUCT_CATEGORIES_CREATE,\n PERMISSIONS.PRODUCT_CATEGORIES_READ,\n PERMISSIONS.PRODUCT_CATEGORIES_UPDATE,\n PERMISSIONS.PRODUCT_CATEGORIES_DELETE,\n PERMISSIONS.SALES_CREATE,\n PERMISSIONS.SALES_READ,\n PERMISSIONS.SALES_UPDATE,\n PERMISSIONS.SUPPLIERS_CREATE,\n PERMISSIONS.SUPPLIERS_READ,\n PERMISSIONS.SUPPLIERS_UPDATE,\n PERMISSIONS.SUPPLIERS_DELETE,\n PERMISSIONS.PAYMENT_METHODS_CREATE,\n PERMISSIONS.PAYMENT_METHODS_READ,\n PERMISSIONS.PAYMENT_METHODS_UPDATE,\n PERMISSIONS.PAYMENT_METHODS_DELETE,\n ],\n STAFF: [\n PERMISSIONS.CLIENTS_READ,\n PERMISSIONS.CHECKINS_CREATE,\n PERMISSIONS.CHECKINS_READ,\n PERMISSIONS.PRODUCTS_READ,\n PERMISSIONS.PRODUCT_CATEGORIES_READ,\n PERMISSIONS.SALES_CREATE,\n PERMISSIONS.SALES_READ,\n PERMISSIONS.PAYMENT_METHODS_READ,\n ],\n ADVISOR: [\n PERMISSIONS.CLIENTS_READ,\n PERMISSIONS.EVALUATIONS_CREATE,\n PERMISSIONS.EVALUATIONS_READ,\n PERMISSIONS.EVALUATIONS_UPDATE,\n PERMISSIONS.ASSETS_CREATE,\n PERMISSIONS.ASSETS_READ,\n PERMISSIONS.FILES_CREATE,\n PERMISSIONS.FILES_READ,\n ],\n} as const;\n\n// Cache TTL values (in seconds)\nexport const CACHE_TTL = {\n USER_PERMISSIONS: 900, // 15 minutes\n GYM_DATA: 1800, // 30 minutes\n STATIC_DATA: 3600, // 60 minutes\n REPORTS: 300, // 5 minutes\n DASHBOARD: 180, // 3 minutes\n} as const;\n\n// File size limits (in bytes)\nexport const FILE_LIMITS = {\n MAX_FILE_SIZE: 10 * 1024 * 1024, // 10MB\n MAX_IMAGE_SIZE: 5 * 1024 * 1024, // 5MB\n MAX_DOCUMENT_SIZE: 10 * 1024 * 1024, // 10MB\n} as const;\n\n// Pagination defaults\nexport const PAGINATION_DEFAULTS = {\n PAGE: 1,\n LIMIT: 20,\n MAX_LIMIT: 100,\n} as const;\n\n// Date formats\nexport const DATE_FORMATS = {\n DATE_ONLY: 'YYYY-MM-DD',\n DATETIME: 'YYYY-MM-DD HH:mm:ss',\n TIME_ONLY: 'HH:mm:ss',\n} as const;\n\n// Headers\nexport const HEADERS = {\n GYM_ID: 'X-Gym-Id',\n REQUEST_ID: 'X-Request-Id',\n} as const;","export interface StartOnboardingData {\n name: string;\n email: string;\n phone: string;\n password: string;\n organizationName: string;\n country: string;\n currency: string;\n timezone: string;\n}\n\nexport interface StartOnboardingResponse {\n success: boolean;\n access_token: string;\n refresh_token: string;\n user: {\n id: string;\n email: string;\n name: string;\n userType: string;\n };\n organization: {\n id: string;\n name: string;\n organizationCode: string;\n };\n gym: {\n id: string;\n name: string;\n };\n onboardingStatus: OnboardingStatus;\n}\n\nexport interface BusinessHours {\n open: string;\n close: string;\n closed: boolean;\n}\n\nexport interface WeeklySchedule {\n monday: BusinessHours;\n tuesday: BusinessHours;\n wednesday: BusinessHours;\n thursday: BusinessHours;\n friday: BusinessHours;\n saturday: BusinessHours;\n sunday: BusinessHours;\n}\n\nexport interface Amenities {\n hasParking: boolean;\n hasShowers: boolean;\n hasLockers: boolean;\n hasPool: boolean;\n hasSauna: boolean;\n hasWifi: boolean;\n hasChildcare: boolean;\n hasCafeteria: boolean;\n}\n\nexport interface SocialMedia {\n facebook?: string;\n instagram?: string;\n twitter?: string;\n website?: string;\n}\n\nexport interface UpdateGymSettingsData {\n gymId: string;\n name: string;\n address: string;\n city: string;\n state: string;\n postalCode: string;\n phone: string;\n email: string;\n businessHours: WeeklySchedule;\n capacity: number;\n description?: string;\n amenities: Amenities;\n socialMedia?: SocialMedia;\n logo?: string;\n coverPhoto?: string;\n primaryColor?: string;\n}\n\nexport interface ClientManagementFeatures {\n enabled: boolean;\n requireDocumentId: boolean;\n enablePhotos: boolean;\n trackEmergencyContacts: boolean;\n trackMedicalConditions: boolean;\n}\n\nexport interface MembershipManagementFeatures {\n enabled: boolean;\n allowCustomPricing: boolean;\n allowContractFreezing: boolean;\n expiryWarningDays: number;\n autoRenewalReminders: boolean;\n}\n\nexport interface CheckInSystemFeatures {\n enabled: boolean;\n requireActiveContract: boolean;\n trackCheckInTime: boolean;\n allowMultiplePerDay: boolean;\n}\n\nexport interface EvaluationSystemFeatures {\n enabled: boolean;\n trackMeasurements: boolean;\n trackBodyComposition: boolean;\n trackPerformance: boolean;\n defaultFrequencyDays: number;\n}\n\nexport interface LeadManagementFeatures {\n enabled: boolean;\n publicCatalogListing: boolean;\n enableOnlineForm: boolean;\n autoAssignLeads: boolean;\n}\n\nexport interface NotificationSettings {\n emailEnabled: boolean;\n smsEnabled: boolean;\n welcomeEmails: boolean;\n contractExpiryAlerts: boolean;\n evaluationReminders: boolean;\n}\n\nexport interface ConfigureFeaturesData {\n gymId: string;\n clientManagement: ClientManagementFeatures;\n membershipManagement: MembershipManagementFeatures;\n checkInSystem: CheckInSystemFeatures;\n evaluationSystem: EvaluationSystemFeatures;\n leadManagement: LeadManagementFeatures;\n notifications: NotificationSettings;\n}\n\nexport interface CompleteGuidedSetupData {\n gymId: string;\n}\n\nexport enum OnboardingStep {\n ACCOUNT_CREATED = 'account_created',\n GYM_SETTINGS = 'gym_settings',\n FEATURES_CONFIGURED = 'features_configured',\n COMPLETED = 'completed',\n}\n\nexport interface OnboardingStatus {\n organizationId: string;\n gymId: string;\n currentStep: OnboardingStep;\n accountCreated: boolean;\n gymSettingsCompleted: boolean;\n featuresConfigured: boolean;\n isCompleted: boolean;\n nextAction: string;\n completionPercentage: number;\n}\n\nexport interface OnboardingResponse {\n success: boolean;\n gym?: any;\n onboardingStatus: OnboardingStatus;\n message?: string;\n}"]}