import api from './client'; import type { DouyuConfig, DouyuGoodsItem, DouyuRechargeChannel, DouyuTaskAccountItem, DouyuTaskBatchRequest, DouyuTaskBatchResult, DouyuTaskItem, DouyuXpdGoodsItem, MessageResponse, PageParams, PaginatedResponse, } from './types'; export const douyuApi = { taskTypes: () => api.get, Record>('/douyu/task-types'), listAccounts: (params?: { search?: string; tag?: string; ids?: string }) => api.get('/douyu/accounts', { params }), listAccountsPaged: (params: PageParams & { ids?: string; tag?: string }) => api.get, PaginatedResponse>('/douyu/accounts', { params }), listAccountIds: (params?: { search?: string; tag?: string }) => api.get<{ account_ids: number[]; total: number }, { account_ids: number[]; total: number }>('/douyu/accounts/ids', { params }), getConfig: () => api.get('/douyu/config'), getRechargeChannel: () => api.get('/douyu/recharge-channel'), updateConfig: (data: Partial) => api.put('/douyu/config', data), listGoods: () => api.get('/douyu/goods'), listEsportsGoods: () => api.get('/douyu/esports-goods'), listPeaceGoods: () => api.get('/douyu/xpd-goods'), createTasks: (data: DouyuTaskBatchRequest) => api.post('/douyu/tasks/batch', data), listTasks: (handbookScope: 'elite' | 'esports' | 'peace', batchId?: string) => api.get('/douyu/tasks', { params: { handbook_scope: handbookScope, ...(batchId ? { batch_id: batchId } : {}) }, }), listWorkbenchAccounts: (handbookScope: 'elite' | 'esports' | 'peace') => api.get<{ account_ids: number[]; configured: boolean }, { account_ids: number[]; configured: boolean }>('/douyu/workbench-accounts', { params: { handbook_scope: handbookScope }, }), updateWorkbenchAccounts: (handbookScope: 'elite' | 'esports' | 'peace', accountIds: number[]) => api.put<{ account_ids: number[]; success: boolean }, { account_ids: number[]; success: boolean }>( '/douyu/workbench-accounts', { handbook_scope: handbookScope, account_ids: accountIds }, ), listTasksPaged: (params: PageParams & { batch_id?: string; include_detail?: boolean }) => api.get, PaginatedResponse>('/douyu/tasks', { params }), getTask: (taskId: number) => api.get(`/douyu/tasks/${taskId}`), cleanupOrphans: () => api.post<{ message: string; cleaned: number; success: boolean }, { message: string; cleaned: number; success: boolean }>('/douyu/tasks/cleanup-orphans'), stopBatch: (batchId: string) => api.post(`/douyu/stop/${batchId}`), };