96 lines
2.1 KiB
TypeScript
96 lines
2.1 KiB
TypeScript
import { ViewData } from "@/lib/contracts/view-data/ViewData";
|
|
|
|
export interface DriverProfileViewData extends ViewData {
|
|
currentDriver: {
|
|
id: string;
|
|
name: string;
|
|
country: string;
|
|
avatarUrl: string;
|
|
iracingId: number | null;
|
|
joinedAt: string;
|
|
joinedAtLabel: string;
|
|
rating: number | null;
|
|
ratingLabel: string;
|
|
globalRank: number | null;
|
|
globalRankLabel: string;
|
|
consistency: number | null;
|
|
bio: string | null;
|
|
totalDrivers: number | null;
|
|
} | null;
|
|
stats: {
|
|
totalRaces: number;
|
|
totalRacesLabel: string;
|
|
wins: number;
|
|
winsLabel: string;
|
|
podiums: number;
|
|
podiumsLabel: string;
|
|
dnfs: number;
|
|
dnfsLabel: string;
|
|
avgFinish: number | null;
|
|
avgFinishLabel: string;
|
|
bestFinish: number | null;
|
|
bestFinishLabel: string;
|
|
worstFinish: number | null;
|
|
worstFinishLabel: string;
|
|
finishRate: number | null;
|
|
winRate: number | null;
|
|
podiumRate: number | null;
|
|
percentile: number | null;
|
|
rating: number | null;
|
|
ratingLabel: string;
|
|
consistency: number | null;
|
|
consistencyLabel: string;
|
|
overallRank: number | null;
|
|
} | null;
|
|
finishDistribution: {
|
|
totalRaces: number;
|
|
wins: number;
|
|
podiums: number;
|
|
topTen: number;
|
|
dnfs: number;
|
|
other: number;
|
|
} | null;
|
|
teamMemberships: {
|
|
teamId: string;
|
|
teamName: string;
|
|
teamTag: string | null;
|
|
role: string;
|
|
joinedAt: string;
|
|
joinedAtLabel: string;
|
|
isCurrent: boolean;
|
|
}[];
|
|
socialSummary: {
|
|
friendsCount: number;
|
|
friends: {
|
|
id: string;
|
|
name: string;
|
|
country: string;
|
|
avatarUrl: string;
|
|
}[];
|
|
};
|
|
extendedProfile: {
|
|
socialHandles: {
|
|
platform: string;
|
|
handle: string;
|
|
url: string;
|
|
}[];
|
|
achievements: {
|
|
id: string;
|
|
title: string;
|
|
description: string;
|
|
icon: string;
|
|
rarity: string;
|
|
rarityLabel: string;
|
|
earnedAt: string;
|
|
earnedAtLabel: string;
|
|
}[];
|
|
racingStyle: string;
|
|
favoriteTrack: string;
|
|
favoriteCar: string;
|
|
timezone: string;
|
|
availableHours: string;
|
|
lookingForTeam: boolean;
|
|
openToRequests: boolean;
|
|
} | null;
|
|
}
|