enhance leaderboard reporting and grouping

This commit is contained in:
Administrator committed 2026-06-05 00:02:05 +08:00
1 parent 88c83b4dd7
commit a5897caec4
4 files changed
+386 -182

No files matched your search

+23
View File
@@ -133,6 +133,11 @@ export interface AdminUserAnalyticsResponse {
trends: AdminLeaderboardTrendPoint[];
}
export interface AdminLeaderboardReportResponse {
report: string;
generated_at: string;
}
const base = () => `${getBackendBaseURL()}/api/admin/users`;
async function parse<T>(res: Response, what: string): Promise<T> {
@@ -208,6 +213,24 @@ export async function getUserAnalytics(
);
}
export async function generateUserLeaderboardReport(
range: { since: string; until: string; days?: number },
limit = 30,
): Promise<AdminLeaderboardReportResponse> {
const params = new URLSearchParams({
days: String(range.days ?? 30),
since: range.since,
until: range.until,
limit: String(limit),
});
return parse(
await apiFetch(`${base()}/leaderboard/report?${params}`, {
method: "POST",
}),
"Failed to generate leaderboard report",
);
}
export async function addAdminMemoryEntry(
userId: string,
content: string,