Appearance
DoCurious API Reference / types / UserProfileWithStats
Interface: UserProfileWithStats
Defined in: types/user.types.ts:384
User profile augmented with gamification stats, used by the dashboard header and profile cards.
Remarks
Extends the base User with computed/aggregated fields from the gamification system. See import('./gamification.types').UserGamificationStats for the full stat breakdown.
Extends
Properties
accountStatus
accountStatus:
AccountStatus
Defined in: types/user.types.ts:142
Inherited from
accountTier
accountTier:
AccountTier
Defined in: types/user.types.ts:141
COPPA-driven tier -- Tier 1 students have limited features (no gifts, no saved list)
Inherited from
activeContext?
optionalactiveContext:ContextType
Defined in: types/user.types.ts:162
The context currently active in the UI -- drives which dashboard and nav items appear
Inherited from
avatarUrl?
optionalavatarUrl:string
Defined in: types/user.types.ts:153
Inherited from
balance?
optionalbalance:number
Defined in: types/user.types.ts:175
Wallet balance in USD cents (sourced from SQL users.balance)
Inherited from
contexts?
optionalcontexts:UserContexts
Defined in: types/user.types.ts:160
All contexts this user participates in (personal, school, business, platform)
Inherited from
createdAt
createdAt:
string
Defined in: types/common.types.ts:154
ISO 8601 datetime when the entity was created
Inherited from
dateOfBirth
dateOfBirth:
string
Defined in: types/user.types.ts:135
ISO 8601 date string -- used for COPPA age gating at login
Inherited from
displayName
displayName:
string
Defined in: types/user.types.ts:133
Inherited from
email
email:
string
Defined in: types/user.types.ts:132
Inherited from
id
id:
string
Defined in: types/common.types.ts:167
Inherited from
interests
interests:
string[]
Defined in: types/user.types.ts:156
Category slugs used by the recommendation engine to personalize Explore views
Inherited from
isUnder13
isUnder13:
boolean
Defined in: types/user.types.ts:146
COPPA flag -- under-13 users require parental consent and have content restrictions
Inherited from
joinedAt
joinedAt:
string
Defined in: types/user.types.ts:395
ISO datetime when the user account was created
level
level:
number
Defined in: types/user.types.ts:386
Current gamification level (1-15, see LEVEL_DEFINITIONS)
linkedChildIds?
optionallinkedChildIds:string[]
Defined in: types/user.types.ts:172
UUIDs of linked child accounts; populated only for the parent role
Inherited from
parentalConsentStatus
parentalConsentStatus:
ConsentStatus
Defined in: types/user.types.ts:148
Tracks whether a parent/guardian has granted consent for this under-13 user
Inherited from
profile?
optionalprofile:UserProfile
Defined in: types/user.types.ts:151
Inherited from
profileFieldVisibility?
optionalprofileFieldVisibility:ProfileFieldVisibility
Defined in: types/user.types.ts:178
Per-field privacy settings controlling who can see each profile field
Inherited from
role
role:
UserRole
Defined in: types/user.types.ts:139
Primary role determining platform capabilities and route access
Inherited from
schoolId?
optionalschoolId:string
Defined in: types/user.types.ts:166
School UUID for school-affiliated roles; required for student/teacher/school_admin
Inherited from
streakDays
streakDays:
number
Defined in: types/user.types.ts:393
Current weekly activity streak length in days
totalChallengesCompleted
totalChallengesCompleted:
number
Defined in: types/user.types.ts:391
updatedAt
updatedAt:
string
Defined in: types/common.types.ts:156
ISO 8601 datetime when the entity was last modified
Inherited from
vendorProfileId?
optionalvendorProfileId:string
Defined in: types/user.types.ts:168
Vendor profile UUID; present only for users with the vendor role
Inherited from
xp
xp:
number
Defined in: types/user.types.ts:388
Cumulative experience points earned
xpToNextLevel
xpToNextLevel:
number
Defined in: types/user.types.ts:390
XP remaining to reach the next level