import api from './client'; export interface PaperlessTag { id: number; slug: string; name: string; color: string; text_color: string; match: string; matching_algorithm: number; is_insensitive: boolean; is_inbox_tag: boolean; document_count: number; } export interface PaperlessDocType { id: number; slug: string; name: string; match: string; matching_algorithm: number; is_insensitive: boolean; document_count: number; } export interface PaperlessCustomField { id: number; name: string; data_type: string; extra_data?: any; } export interface PaperlessCorrespondent { id: number; slug: string; name: string; match: string; matching_algorithm: number; is_insensitive: boolean; document_count: number; } export interface PaperlessUser { id: number; username: string; first_name?: string; last_name?: string; } export const paperlessApi = { getTags: () => api.get('/api/paperless/tags').then(r => r.data), getSteuertagIds: () => api.get<{ ids: number[] }>('/api/paperless/steuertags').then(r => r.data.ids), getDocumentTypes: () => api.get('/api/paperless/document-types').then(r => r.data), getCustomFields: () => api.get('/api/paperless/custom-fields').then(r => r.data), getCorrespondents: (search?: string) => api.get('/api/paperless/correspondents', { params: { search } }).then(r => r.data), getCorrespondent: (id: number) => api.get(`/api/paperless/correspondents/${id}`).then(r => r.data), getUsers: () => api.get('/api/paperless/users').then(r => r.data), searchDocuments: (params: { search?: string, page?: number, pageSize?: number }) => api.get<{ results: any[], count: number }>('/api/paperless/documents', { params }).then(r => r.data), getDocument: (id: number) => api.get(`/api/paperless/documents/${id}`).then(r => r.data), checksumExists: (checksum: string) => api.post<{ exists: boolean }>('/api/paperless/checksum', { checksum }).then(r => r.data.exists), getDocumentPdfBlob: (id: number) => api.get(`/api/paperless/inbox/pdf/${id}`, { responseType: 'blob' }).then(r => r.data), };