mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-27 22:47:04 -05:00
Add contributor leaderboard
Add types, hook, UI components, and integration for leaderboard showing top users with badges
This commit is contained in:
53
src/types/contributor.ts
Normal file
53
src/types/contributor.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
// Contributor leaderboard types
|
||||
export type AchievementLevel = 'newcomer' | 'bronze' | 'silver' | 'gold' | 'platinum' | 'legend';
|
||||
|
||||
export type SpecialBadge =
|
||||
| 'park_explorer'
|
||||
| 'ride_master'
|
||||
| 'photographer'
|
||||
| 'critic'
|
||||
| 'editor'
|
||||
| 'completionist'
|
||||
| 'veteran'
|
||||
| 'top_contributor';
|
||||
|
||||
export interface ContributorStats {
|
||||
parks_added: number;
|
||||
rides_added: number;
|
||||
companies_added: number;
|
||||
models_added: number;
|
||||
photos_added: number;
|
||||
reviews_added: number;
|
||||
edits_made: number;
|
||||
}
|
||||
|
||||
export interface TotalContributorStats {
|
||||
total_parks: number;
|
||||
total_rides: number;
|
||||
total_photos: number;
|
||||
total_reviews: number;
|
||||
total_edits: number;
|
||||
}
|
||||
|
||||
export interface LeaderboardContributor {
|
||||
rank: number;
|
||||
user_id: string;
|
||||
username: string;
|
||||
display_name: string | null;
|
||||
avatar_url: string | null;
|
||||
join_date: string;
|
||||
contribution_score: number;
|
||||
total_score: number;
|
||||
achievement_level: AchievementLevel;
|
||||
special_badges: SpecialBadge[];
|
||||
stats: ContributorStats;
|
||||
total_stats: TotalContributorStats;
|
||||
}
|
||||
|
||||
export interface LeaderboardData {
|
||||
contributors: LeaderboardContributor[];
|
||||
total_contributors: number;
|
||||
generated_at: string;
|
||||
}
|
||||
|
||||
export type TimePeriod = 'all_time' | 'month' | 'week';
|
||||
Reference in New Issue
Block a user