import { request, withQuery } from '../core/httpClient'; import type { PagedResult, SignatureActivityResponse, SignatureAnalyticsMetadata, SignatureRetirementHeatmapItem, SignatureRetirementHeatmapDimension, SignatureRetirementMessage, SignatureRetirementRule, SignatureRetirementRuleType, SignatureRetirementSuppression, SignatureRetirementWebhook, UnreportedSignatureItem, } from '../types'; export const adminSignatureRetirementApi = { getSignatureActivity: ( query: { date: string; dimensionType: 'enterprise' | 'channel'; page: number; pageSize: number; tenantName?: string; applicationName?: string; signatureName?: string; channelName?: string; }, signal?: AbortSignal, ) => request(withQuery('/admin/signature-retirement/activity', query), { signal }), getSignatureRetirementConfiguration: () => request<{ rules: SignatureRetirementRule[]; webhooks: SignatureRetirementWebhook[] }>( '/admin/signature-retirement/configuration', ), saveSignatureRetirementRule: (body: { ruleType: SignatureRetirementRuleType; targetId?: string; enabled: boolean; mobileWindowDays: number; mobileThreshold: number; unicomWindowDays: number; unicomThreshold: number; telecomWindowDays: number; telecomThreshold: number; messageTemplate?: string; }) => request('/admin/signature-retirement/rules', { method: 'PUT', body: JSON.stringify(body), }), createSignatureRetirementWebhook: (body: { name: string; platform: 'wecom' | 'feishu'; url: string }) => request('/admin/signature-retirement/webhooks', { method: 'POST', body: JSON.stringify(body), }), deleteSignatureRetirementWebhook: (id: string) => request(`/admin/signature-retirement/webhooks/${id}`, { method: 'DELETE' }), listSignatureRetirementMessages: ( query: { dateFrom?: string; dateTo?: string; dimensionType?: string; tenantId?: string; applicationId?: string; signatureKeyword?: string; channelId?: string; page?: number; pageSize?: number; } = {}, ) => request>(withQuery('/admin/signature-retirement/messages', query)), getSignatureRetirementUnreadCount: (signal?: AbortSignal) => request<{ count: number }>('/admin/signature-retirement/unread-count', { signal }), readSignatureRetirementMessage: (id: string) => request(`/admin/signature-retirement/messages/${id}/read`, { method: 'POST' }), readAllSignatureRetirementMessagesToday: () => request<{ count: number }>('/admin/signature-retirement/messages/read-all-today', { method: 'POST' }), suppressSignatureRetirementMessage: ( id: string, body: { mode: 'temporary' | 'permanent'; days?: number; reason?: string }, ) => request(`/admin/signature-retirement/messages/${id}/suppress`, { method: 'POST', body: JSON.stringify(body), }), listSignatureRetirementSuppressions: () => request('/admin/signature-retirement/suppressions'), cancelSignatureRetirementSuppression: (id: string, reason: string) => request(`/admin/signature-retirement/suppressions/${id}/cancel`, { method: 'POST', body: JSON.stringify({ reason }), }), getSignatureRetirementHeatmap: (date?: string) => request<{ date: string; dimensions: SignatureRetirementHeatmapDimension[]; items: SignatureRetirementHeatmapItem[]; }>(withQuery('/admin/signature-retirement/heatmap', { date })), getUnreportedSignatures: ( query: { date?: string; keyword?: string; page?: number; pageSize?: number } = {}, signal?: AbortSignal, ) => request & { date: string } & SignatureAnalyticsMetadata>( withQuery('/admin/signature-retirement/unreported-signatures', query), { signal }, ), };