All checks were successful
Deploy Admin Frontend / build-and-deploy (push) Successful in 10s
- routes/index.tsx: DataPages → 独立文件 import - 导出 CostItem、CostSummary、Conversation、HealthService 类型 - ServerInfo、ProcessInfo、ServerHealth 类型补全嵌套字段 - 修复 useRef 缺初始值、string|null、unused imports 等 Co-Authored-By: Claude <noreply@anthropic.com>
16 lines
1.0 KiB
TypeScript
16 lines
1.0 KiB
TypeScript
import { api } from '@/lib/api-client'
|
|
|
|
export interface CostItem { id: string; name: string; currency: string; amount: number; purchaseDate?: string; expiryDate?: string; [key: string]: any }
|
|
export interface CostSummary { totalMonthly: number; totalYearly: number; totalOneTime: number; items: CostItem[]; byMonth: any[]; expiringSoon: any[] }
|
|
|
|
export const costsAPI = {
|
|
summary() { return api.get<CostSummary>('/admin-api/costs/summary') },
|
|
list() { return api.get<CostItem[]>('/admin-api/costs') },
|
|
create(data: Omit<CostItem, 'id' | 'currency'> & { currency?: string }) { return api.post<CostItem>('/admin-api/costs', data) },
|
|
update(id: string, data: Partial<CostItem>) { return api.patch<CostItem>(`/admin-api/costs/${id}`, data) },
|
|
remove(id: string) { return api.delete<void>(`/admin-api/costs/${id}`) },
|
|
report() { return api.get('/admin-api/costs/report?days=30') },
|
|
topUsers() { return api.get('/admin-api/costs/top-users?days=30&limit=10') },
|
|
aggregate() { return api.post('/admin-api/costs/aggregate') },
|
|
}
|