import api from '../core/api';

export type UploadedFileMeta = {
  url: string;
  path?: string;
  filename?: string;
  original_filename?: string;
};

export async function uploadFiles(
  files: { uri: string; name: string; mimeType?: string | null }[],
  folder = 'attachments',
): Promise<{ urls: string[]; files: UploadedFileMeta[] }> {
  const formData = new FormData();

  files.forEach((file) => {
    formData.append('files[]', {
      uri: file.uri,
      name: file.name,
      type: file.mimeType || 'application/octet-stream',
    } as unknown as Blob);
  });

  formData.append('folder', folder);

  const { data } = await api.post<{ urls?: string[]; files?: UploadedFileMeta[] }>('/uploads', formData, {
    headers: { 'Content-Type': 'multipart/form-data' },
    timeout: 120000,
  });

  return {
    urls: data.urls || [],
    files: data.files || [],
  };
}
