UNPKG

trainingpeaks-sdk

Version:
116 lines (115 loc) 4.17 kB
import { z } from 'zod'; import { TrainingPeaksAthleteSchema } from '../../../../../../domain/schemas/entities.schema.js'; import { TrainingPeaksSettingsSchema, UserPreferencesSchema, } from '../../../../../../domain/schemas/value-objects.schema.js'; export const UserProfileEndpointResponseSchema = z.object({ user: z.object({ userId: z.number(), firstName: z.string(), lastName: z.string(), fullName: z.string().optional(), email: z.string().min(1), userName: z.string(), personPhotoUrl: z.string().nullable().optional(), timeZone: z.string().optional(), language: z.string().optional(), units: z.number().optional(), dateFormat: z.string().optional(), temperatureUnit: z.union([z.string(), z.number()]).optional(), settings: z.unknown().optional(), athletes: z.array(z.unknown()).optional(), }), }); export const UpdateUserProfileEndpointResponseSchema = z.object({ success: z.boolean(), message: z.string().optional(), }); export const UserPreferencesEndpointResponseSchema = z.object({ timeZone: z.string().optional(), language: z.string().optional(), units: z.number().optional(), dateFormat: z.string().optional(), temperatureUnit: z.union([z.string(), z.number()]).optional(), }); export const UpdateUserPreferencesEndpointResponseSchema = z.object({ success: z.boolean(), message: z.string().optional(), }); export const TrainingPeaksUserResponseSchema = z.object({ user: z.object({ userId: z.number(), settings: TrainingPeaksSettingsSchema, athletes: z.array(TrainingPeaksAthleteSchema), personId: z.number(), accountSettingsId: z.number(), userName: z.string(), email: z.string().min(1), isEmailVerified: z.boolean(), firstName: z.string(), lastName: z.string(), userType: z.number(), userIdentifierHash: z.string(), expireDate: z.string(), premiumTrial: z.boolean(), premiumTrialDaysRemaining: z.number(), lastLogon: z.string(), numberOfVisits: z.number(), created: z.string(), age: z.number(), birthday: z.string(), gender: z.string(), dateFormat: z.string(), timeZone: z.string(), units: z.number(), temperatureUnit: z.number(), windSpeedUnit: z.number(), allowMarketingEmails: z.boolean(), address: z.string().nullable(), address2: z.string().nullable(), city: z.string().nullable(), state: z.string().nullable(), zipCode: z.string().nullable(), country: z.string().nullable(), phone: z.string().nullable(), cellPhone: z.string().nullable(), language: z.string(), latitude: z.number().nullable(), longitude: z.number().nullable(), personPhotoUrl: z.string().nullable(), affiliateId: z.number(), isAthlete: z.boolean(), fullName: z.string(), }), accountStatus: z.object({ status: z.number(), lockedOut: z.boolean(), demoExpired: z.boolean(), pastDue: z.boolean(), pastDueAccountSetup: z.boolean(), tooManyBasicAthletes: z.boolean(), isAthlete: z.boolean(), isCoachedAthlete: z.boolean(), isCoach: z.boolean(), isCoachingGroupOwner: z.boolean(), athleteInZuoraSystem: z.boolean(), lockedOutOfMobile: z.boolean(), coachingGroupId: z.number().nullable(), coachingGroupOwnerId: z.number().nullable(), billingTier: z.number(), maximumBasicAthletes: z.number(), paymentRequired: z.boolean(), }), }); export const UserInfoResponseSchema = z.object({ status: z.number(), statusText: z.string(), data: z.object({ user: z.object({ userId: z.string().min(1), username: z.string().min(1), name: z.string().min(1), preferences: UserPreferencesSchema, }), }), headers: z.record(z.string(), z.string()), cookies: z.array(z.string()), });