8b1d132e17
* [Leaderboards] Added period toggle for leaderboards * [Leaderboards] TopBettors now calculates by period correctly * [Leaderboard] Use a subcollection for the portfolio caching * [Leaderboard] Switches to a tab view, temporarily hides the missing topBettors periods * [Leaderboard] Reverts random yarn.lock changes * Fix type error from merge * Increase timeout on update metrics * Update firebase rules to allow reading user portfolioHistory Co-authored-by: Pico2x <pico2x@gmail.com>
65 lines
1.3 KiB
TypeScript
65 lines
1.3 KiB
TypeScript
export type User = {
|
|
id: string
|
|
createdTime: number
|
|
|
|
name: string
|
|
username: string
|
|
avatarUrl?: string
|
|
|
|
// For their user page
|
|
bio?: string
|
|
bannerUrl?: string
|
|
website?: string
|
|
twitterHandle?: string
|
|
discordHandle?: string
|
|
|
|
balance: number
|
|
totalDeposits: number
|
|
|
|
profitCached: {
|
|
daily: number
|
|
weekly: number
|
|
monthly: number
|
|
allTime: number
|
|
}
|
|
|
|
creatorVolumeCached: {
|
|
daily: number
|
|
weekly: number
|
|
monthly: number
|
|
allTime: number
|
|
}
|
|
|
|
followerCountCached: number
|
|
|
|
followedCategories?: string[]
|
|
}
|
|
|
|
export const STARTING_BALANCE = 1000
|
|
export const SUS_STARTING_BALANCE = 10 // for sus users, i.e. multiple sign ups for same person
|
|
|
|
export type PrivateUser = {
|
|
id: string // same as User.id
|
|
username: string // denormalized from User
|
|
|
|
email?: string
|
|
unsubscribedFromResolutionEmails?: boolean
|
|
unsubscribedFromCommentEmails?: boolean
|
|
unsubscribedFromAnswerEmails?: boolean
|
|
unsubscribedFromGenericEmails?: boolean
|
|
initialDeviceToken?: string
|
|
initialIpAddress?: string
|
|
apiKey?: string
|
|
notificationPreferences?: notification_subscribe_types
|
|
}
|
|
|
|
export type notification_subscribe_types = 'all' | 'less' | 'none'
|
|
|
|
export type PortfolioMetrics = {
|
|
investmentValue: number
|
|
balance: number
|
|
totalDeposits: number
|
|
timestamp: number
|
|
userId: string
|
|
}
|