import api, { unwrap } from './request'; export interface AttachmentMeta extends Record { attachmentId: number; refType: string; refId: number; originalName: string; storedPath: string; fileSize: number; mimeType: string; uploadedBy: number; uploaderName: string; uploadedAt: string; } export const attachmentApi = { list: (refType: string, refId: number) => unwrap( api.get('/api/attachments', { params: { refType, refId } }), ), upload: (refType: string, refId: number, file: File, onProgress?: (pct: number) => void) => { const form = new FormData(); form.append('file', file); form.append('refType', refType); form.append('refId', String(refId)); return unwrap( api.post('/api/attachments', form, { headers: { 'Content-Type': 'multipart/form-data' }, onUploadProgress: (evt) => { if (onProgress && evt.total) { onProgress(Math.round((evt.loaded / evt.total) * 100)); } }, }), ); }, delete: (id: number) => unwrap(api.delete(`/api/attachments/${id}`)), };