2025-07-22 15:24:23 +08:00

106 lines
2.2 KiB
TypeScript

export interface User {
id: string;
account: string;
username: string;
avatar_store_url: string | null;
is_admin: boolean;
access_token: string
nickname?: string
email: string
user_id?: string
refresh_token?: string
avatar_file_url?: string
}
export interface UserCountData {
video_count: number,
photo_count: number,
live_count: number,
video_length: number,
cover_url: string | null
}
export interface CountData {
used_bytes: number;
total_bytes: number;
counter: {
user_id: number;
total_count: UserCountData,
category_count: {
[key: string]: UserCountData
}
}
}
export interface Counter {
user_id: number,
total_count: UserCountData,
category_count: {
[key: string]: UserCountData
}
}
export interface TitleRankings {
display_name: string,
ranking: number,
value: number,
material_type: string,
user_id: string,
region: string
}
export interface UserInfoDetails {
material_counter: Counter,
user_info: User,
stories_count: number,
conversations_count: number,
remain_points: number,
total_points: number,
title_rankings: TitleRankings[],
total_bytes: number,
medal_infos: {
"id": number,
"url": string
}[],
membership_level: string
}
export type SourceItem = {
id: number;
name: string;
display_name: string;
statistical_granularity: 'Count' | 'Duration';
};
export type GroupedData = {
[key: string]: SourceItem[];
};
export type TargetItem = {
name: string;
children: { name: string, value: number }[];
};
export type RankingItem = {
display_name: string
material_type: string
ranking: number
region: string
user_avatar_url: string
user_id: string
value: number
user_nick_name: string
}
export interface Address {
city: string;
country: string;
district: string;
formattedAddress: string;
isoCountryCode: string;
name: string;
postalCode: string | null;
region: string;
street: string;
streetNumber: string;
subregion: string | null;
timezone: string | null;
}