import { defHttp } from '#/api/request';
import type { DmsWatermarkParameters } from './watermarkParameters';

export type DmsPreviewResourceType = 'DOCUMENT' | 'FILE_VERSION';

export interface DmsFilePreviewTicketRequest extends DmsWatermarkParameters {
  operationId: string;
  previewFormat?: 'pdf' | 'source';
  resourceId: string;
  resourceType: DmsPreviewResourceType;
  watermarkType?: string;
}

export interface DmsFilePreviewTicket {
  accessTicket: string;
  expiresAt: string;
  fileName: string;
  fileVersionId: string;
  mimeType?: string;
  sizeBytes?: number;
}

interface DmsApiResult<T> {
  code: number;
  data: T;
  msg?: string;
}

export function createDmsFilePreviewTicket(data: DmsFilePreviewTicketRequest) {
  return defHttp.post<DmsApiResult<DmsFilePreviewTicket>>({ url: '/api/dms/file-preview-tickets', data }, { errorMessageMode: 'none' });
}
