Add player profiles with lifetime stats and map records
This commit is contained in:
@@ -13,6 +13,45 @@ export const leaderboardMetrics = [
|
||||
|
||||
export type LeaderboardMetric = typeof leaderboardMetrics[number]['key'];
|
||||
|
||||
export type PlayerStats = Record<LeaderboardMetric, number>;
|
||||
export interface PlayerMapRecord extends PlayerStats {
|
||||
key: string;
|
||||
name: string;
|
||||
lastSeen: string;
|
||||
}
|
||||
export interface PlayerMatch {
|
||||
id: number;
|
||||
server: string;
|
||||
mapName: string;
|
||||
startedAt: string;
|
||||
lastSeen: string;
|
||||
status: 'active' | 'completed' | 'interrupted';
|
||||
completed: number;
|
||||
highestRound: number;
|
||||
roundsSurvived: number;
|
||||
kills: number;
|
||||
headshots: number;
|
||||
revives: number;
|
||||
downs: number;
|
||||
bestScore: number;
|
||||
}
|
||||
export interface PlayerProfile {
|
||||
game: string;
|
||||
guid: string;
|
||||
name: string;
|
||||
firstSeen: string;
|
||||
lastSeen: string;
|
||||
stats: PlayerStats;
|
||||
maps: PlayerMapRecord[];
|
||||
matches: PlayerMatch[];
|
||||
offset: number;
|
||||
limit: number;
|
||||
}
|
||||
|
||||
export function playerProfileHref(game: string, guid: string): string {
|
||||
return `/leaderboard/players/${encodeURIComponent(game)}/${encodeURIComponent(guid)}`;
|
||||
}
|
||||
|
||||
export interface LeaderboardEntry {
|
||||
rank: number;
|
||||
game: string;
|
||||
|
||||
Reference in New Issue
Block a user