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