Add minimum unique bettors for proven correct
This commit is contained in:
parent
7fa1d14443
commit
bc8a3a8e3c
|
@ -1,10 +1,5 @@
|
||||||
import { User } from './user'
|
import { User } from './user'
|
||||||
|
|
||||||
export type Achievement = {
|
|
||||||
totalBadges: number
|
|
||||||
badges: Badge[]
|
|
||||||
}
|
|
||||||
|
|
||||||
export type Badge = {
|
export type Badge = {
|
||||||
type: BadgeTypes
|
type: BadgeTypes
|
||||||
createdTime: number
|
createdTime: number
|
||||||
|
@ -42,6 +37,7 @@ export type ProvenCorrectBadge = Badge & ProvenCorrectBadgeData
|
||||||
export type StreakerBadge = Badge & StreakerBadgeData
|
export type StreakerBadge = Badge & StreakerBadgeData
|
||||||
export type MarketCreatorBadge = Badge & MarketCreatorBadgeData
|
export type MarketCreatorBadge = Badge & MarketCreatorBadgeData
|
||||||
|
|
||||||
|
export const MINIMUM_UNIQUE_BETTORS_FOR_PROVEN_CORRECT_BADGE = 5
|
||||||
export const provenCorrectRarityThresholds = [1, 1000, 10000]
|
export const provenCorrectRarityThresholds = [1, 1000, 10000]
|
||||||
const calculateProvenCorrectBadgeRarity = (badge: ProvenCorrectBadge) => {
|
const calculateProvenCorrectBadgeRarity = (badge: ProvenCorrectBadge) => {
|
||||||
const { betAmount } = badge.data
|
const { betAmount } = badge.data
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { notification_preferences } from './user-notification-preferences'
|
import { notification_preferences } from './user-notification-preferences'
|
||||||
import { ENV_CONFIG } from './envs/constants'
|
import { ENV_CONFIG } from './envs/constants'
|
||||||
import { Achievement } from './badge'
|
import { MarketCreatorBadge, ProvenCorrectBadge, StreakerBadge } from './badge'
|
||||||
|
|
||||||
export type User = {
|
export type User = {
|
||||||
id: string
|
id: string
|
||||||
|
@ -52,9 +52,18 @@ export type User = {
|
||||||
isBannedFromPosting?: boolean
|
isBannedFromPosting?: boolean
|
||||||
|
|
||||||
achievements?: {
|
achievements?: {
|
||||||
provenCorrect?: Achievement
|
provenCorrect?: {
|
||||||
marketCreator?: Achievement
|
totalBadges: number
|
||||||
streaker?: Achievement
|
badges: ProvenCorrectBadge[]
|
||||||
|
}
|
||||||
|
marketCreator?: {
|
||||||
|
totalBadges: number
|
||||||
|
badges: MarketCreatorBadge[]
|
||||||
|
}
|
||||||
|
streaker?: {
|
||||||
|
totalBadges: number
|
||||||
|
badges: StreakerBadge[]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,10 @@ import { Bet } from '../../common/bet'
|
||||||
import * as admin from 'firebase-admin'
|
import * as admin from 'firebase-admin'
|
||||||
import { ContractComment } from '../../common/comment'
|
import { ContractComment } from '../../common/comment'
|
||||||
import { scoreCommentorsAndBettors } from '../../common/scoring'
|
import { scoreCommentorsAndBettors } from '../../common/scoring'
|
||||||
import { ProvenCorrectBadge } from '../../common/badge'
|
import {
|
||||||
|
MINIMUM_UNIQUE_BETTORS_FOR_PROVEN_CORRECT_BADGE,
|
||||||
|
ProvenCorrectBadge,
|
||||||
|
} from '../../common/badge'
|
||||||
|
|
||||||
export const onUpdateContract = functions.firestore
|
export const onUpdateContract = functions.firestore
|
||||||
.document('contracts/{contractId}')
|
.document('contracts/{contractId}')
|
||||||
|
@ -51,6 +54,12 @@ export const onUpdateContract = functions.firestore
|
||||||
const firestore = admin.firestore()
|
const firestore = admin.firestore()
|
||||||
|
|
||||||
async function handleResolvedContract(contract: Contract) {
|
async function handleResolvedContract(contract: Contract) {
|
||||||
|
if (
|
||||||
|
(contract.uniqueBettorCount ?? 0) <
|
||||||
|
MINIMUM_UNIQUE_BETTORS_FOR_PROVEN_CORRECT_BADGE
|
||||||
|
)
|
||||||
|
return
|
||||||
|
|
||||||
// get all bets on this contract
|
// get all bets on this contract
|
||||||
const bets = await getValues<Bet>(
|
const bets = await getValues<Bet>(
|
||||||
firestore.collection(`contracts/${contract.id}/bets`)
|
firestore.collection(`contracts/${contract.id}/bets`)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user