import request from './request';
import type {
  CalibrationFile,
  DocumentMetadata,
  DocumentChunk,
  KnowledgeRelation,
} from '@/types/calibration';

export const calibrationApi = {
  getFiles: (params?: { type?: string; status?: string }) =>
    request.get<CalibrationFile[]>('/api/v1/calibration/files', { params }),

  getFileContent: (fileId: string) =>
    request.get(`/api/v1/calibration/files/${fileId}/content`, {
      responseType: 'blob',
    }),

  getMetadata: (fileId: string) =>
    request.get<DocumentMetadata>(`/api/v1/calibration/files/${fileId}/metadata`),

  getChunks: (fileId: string) =>
    request.get<DocumentChunk[]>(`/api/v1/calibration/files/${fileId}/chunks`),

  getRelations: (fileId: string) =>
    request.get<KnowledgeRelation[]>(`/api/v1/calibration/files/${fileId}/relations`),

  updateMetadata: (fileId: string, metadata: Partial<DocumentMetadata>) =>
    request.put(`/api/v1/calibration/files/${fileId}/metadata`, metadata),

  publishFile: (fileId: string) => request.post(`/api/v1/calibration/files/${fileId}/publish`),

  invalidateFile: (fileId: string) =>
    request.post(`/api/v1/calibration/files/${fileId}/invalidate`),
};
