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