// Author: fruit.com.cn import request from '@/axios' /** 指标口径见后端 DashboardService 注释与 docs/api-phase1.md「2.8 数据看板」 */ export interface DashboardOverview { generatedAt: string user: Record content: Record playback: Record revenue: Record cost: Record notes: string[] } export interface TranscodeBoard { generatedAt: string queue: Record failedTasks: { id: number episodeId: number status: string retryCount: number errorMsg: string createdAt?: string }[] notes: string[] } /** 近 7 天每日趋势(给折线图用)。 */ export interface DashboardTrend { dates: string[] newUsers: number[] playEvents: number[] newTranscodes: number[] transcodeSuccess: number[] } /** 分布项(给饼图用)。 */ export interface DistributionItem { label: string value: number } export interface DashboardDistribution { dramaStatus: Record transcodeStatus: Record episodeMedia: Record pendingModeration: DistributionItem[] } export const getDashboardOverviewApi = () => { return request.get({ url: '/admin/dashboard/overview' }) } export const getTranscodeBoardApi = () => { return request.get({ url: '/admin/dashboard/transcode' }) } export const getDashboardTrendApi = () => { return request.get({ url: '/admin/dashboard/trend' }) } export const getDashboardDistributionApi = () => { return request.get({ url: '/admin/dashboard/distribution' }) }