import { http } from './http' import { unwrap } from './envelope' /** 单模块状态(脱敏值 + 连通性)。 */ export interface AdminUserSecretModule { moduleKey: string moduleLabel: string masked: string exists: boolean checkStatus: string checkCode: string checkMessage: string checkLatencyMs: number | null checkedAt: string | null updatedAt: string | null } /** 一行一用户:三个字段列 + 行级状态(三类都检测通过才算 passed)。 */ export interface AdminUserSecretRow { userId: number username: string createdById: number | null createdByUsername: string similarAsin: AdminUserSecretModule appearancePatent: AdminUserSecretModule proxy: AdminUserSecretModule status: string statusMessage: string updatedAt: string | null } export interface AdminUserSecretPage { items: AdminUserSecretRow[] total: number page: number pageSize: number } /** 管理员下拉项(超管筛选用)。 */ export interface AdminOption { id: number username: string } export interface UserSecretQuery { keyword?: string checkStatus?: string /** 按创建人筛选(仅超管生效)。 */ createdById?: number page: number pageSize: number } /** 分页查询用户密钥(一行一用户):GET /api/admin/user-secrets */ export async function fetchUserSecretList(params: UserSecretQuery): Promise { const { data } = await http.get('/api/admin/user-secrets', { params }) return unwrap(data) } /** 立即检测该用户全部已配置项:POST /api/admin/user-secrets/{userId}/check */ export async function checkUserSecret(userId: number) { const { data } = await http.post(`/api/admin/user-secrets/${userId}/check`) return unwrap< Array<{ moduleKey: string checkStatus: string checkCode: string checkMessage: string checkLatencyMs: number | null checkedAt: string | null viaProxy: boolean }> >(data) } /** 清空该用户全部密钥与代理配置:DELETE /api/admin/user-secrets/{userId} */ export async function deleteUserSecret(userId: number): Promise { const { data } = await http.delete(`/api/admin/user-secrets/${userId}`) unwrap(data) }