import { rcEnums } from 'types/rc.enums'; import { RCAddress } from './coreEntites/Address'; interface SchoolItem { schoolId: number; } interface AthleteMetadata { shirtSize?: string; schoolList?: SchoolItem[]; } export interface AthleteSportsSchema { id?: number; athleteId: number; sports: rcEnums.shared.SportsEnum; levelOfPlay: rcEnums.shared.LevelOfPlayEnum; } interface AthleteSchema { id?: number; userId: number; metadata?: AthleteMetadata; athleteSports: AthleteSportsSchema[]; } export interface MediaSchema { id?: number; url: string; name: string; title: string; mediaKey: string; description: string; provider: string; mediaType: rcEnums.media.MediaType; fileType: string; format?: string; userCreatorId: number; ownerId: number; isDefault: boolean; } interface NotificationEntitySettings { active: boolean; } export interface UserSettings { id: number; about?: string; athlete?: AthleteSchema; notificationSettings?: { teams: NotificationEntitySettings; leagues: NotificationEntitySettings; events: NotificationEntitySettings; venues: NotificationEntitySettings; feed: NotificationEntitySettings; users: NotificationEntitySettings; }; pushNotifications?: boolean; profilePictureId?: number; profilePicture?: MediaSchema; address?: RCAddress; email?: string; phoneNumber?: string; merchantId?: number; firstName?: string; lastName?: string; weight?: number; height?: number; birthDate?: Date; gender?: rcEnums.shared.GenderEnum; privateProfile?: boolean; hasPassword?: boolean; avatar?: string; } export interface LoginCredentials { email: string; password: string; } export interface SignUpGeneral { email: string; firstName: string; lastName: string; password: string; confirm?: string; terms?: boolean; } export interface UserSports { sports: number; levelOfPlay: number; } export interface UserUpdateSettings { address?: RCAddress; profile?: { birthDate?: string; gender?: number; phoneNumber?: string; about?: string; }; athlete?: { sports: UserSports[]; }; }