Up streak reward, fix timing logic

This commit is contained in:
Ian Philips 2022-08-19 10:53:50 -06:00
parent 83a963ec6e
commit 7e7b316900
4 changed files with 13 additions and 21 deletions

View File

@ -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

View File

@ -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)
}

View File

@ -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>

View File

@ -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 (
<>