Up streak reward, fix timing logic
This commit is contained in:
parent
83a963ec6e
commit
7e7b316900
|
@ -4,5 +4,5 @@ export const NUMERIC_FIXED_VAR = 0.005
|
|||
export const NUMERIC_GRAPH_COLOR = '#5fa5f9'
|
||||
export const NUMERIC_TEXT_COLOR = 'text-blue-500'
|
||||
export const UNIQUE_BETTOR_BONUS_AMOUNT = 10
|
||||
export const BETTING_STREAK_BONUS_AMOUNT = 1
|
||||
export const BETTING_STREAK_BONUS_AMOUNT = 5
|
||||
export const BETTING_STREAK_RESET_HOUR = 9
|
||||
|
|
|
@ -23,7 +23,6 @@ import {
|
|||
} from '../../common/antes'
|
||||
import { APIError } from '../../common/api'
|
||||
import { User } from '../../common/user'
|
||||
import { DAY_MS } from 'common/lib/util/time'
|
||||
|
||||
const firestore = admin.firestore()
|
||||
const BONUS_START_DATE = new Date('2022-07-13T15:30:00.000Z').getTime()
|
||||
|
@ -71,11 +70,14 @@ const updateBettingStreak = async (
|
|||
contract: Contract,
|
||||
eventId: string
|
||||
) => {
|
||||
const betStreakResetTime = getPreviousBettingStreakResetTime()
|
||||
// If they've already bet after the reset time, they've already gotten their streak bonus
|
||||
if (user.lastBetTime ?? 0 > betStreakResetTime) return
|
||||
const betStreakResetTime = getTodaysBettingStreakResetTime()
|
||||
const lastBetTime = user?.lastBetTime ?? 0
|
||||
|
||||
const newBettingStreak = (user.currentBettingStreak ?? 0) + 1
|
||||
// If they've already bet after the reset time, or if we haven't hit the reset time yet
|
||||
if (lastBetTime > betStreakResetTime || bet.createdTime < betStreakResetTime)
|
||||
return
|
||||
|
||||
const newBettingStreak = (user?.currentBettingStreak ?? 0) + 1
|
||||
// Otherwise, add 1 to their betting streak
|
||||
await firestore.collection('users').doc(user.id).update({
|
||||
currentBettingStreak: newBettingStreak,
|
||||
|
@ -246,16 +248,6 @@ const notifyFills = async (
|
|||
)
|
||||
}
|
||||
|
||||
const getPreviousBettingStreakResetTime = () => {
|
||||
const today = Date.now()
|
||||
let betStreakResetTime = new Date().setUTCHours(
|
||||
BETTING_STREAK_RESET_HOUR,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
)
|
||||
if (today < betStreakResetTime) {
|
||||
betStreakResetTime = betStreakResetTime - DAY_MS
|
||||
}
|
||||
return betStreakResetTime
|
||||
const getTodaysBettingStreakResetTime = () => {
|
||||
return new Date().setUTCHours(BETTING_STREAK_RESET_HOUR, 0, 0, 0)
|
||||
}
|
||||
|
|
|
@ -130,7 +130,7 @@ export function UserPage(props: { user: User }) {
|
|||
</Col>
|
||||
<Col className={'justify-center gap-4'}>
|
||||
<Row>
|
||||
<Col className={'w-20 items-center text-gray-500'}>
|
||||
<Col className={'items-center text-gray-500'}>
|
||||
<span
|
||||
className={clsx(
|
||||
'text-md',
|
||||
|
@ -142,7 +142,7 @@ export function UserPage(props: { user: User }) {
|
|||
<span>profit</span>
|
||||
</Col>
|
||||
<Col
|
||||
className={'w-20 cursor-pointer items-center text-gray-500'}
|
||||
className={'cursor-pointer items-center text-gray-500'}
|
||||
onClick={() => setShowBettingStreakModal(true)}
|
||||
>
|
||||
<span>🔥{user.currentBettingStreak ?? 0}</span>
|
||||
|
|
|
@ -388,7 +388,7 @@ function IncomeNotificationItem(props: {
|
|||
} else if (sourceType === 'betting_streak_bonus' && sourceText) {
|
||||
reasonText = `for your ${
|
||||
parseInt(sourceText) / BETTING_STREAK_BONUS_AMOUNT
|
||||
} day`
|
||||
}-day`
|
||||
}
|
||||
return (
|
||||
<>
|
||||
|
|
Loading…
Reference in New Issue
Block a user