import { defHttp } from '#/api/request';

export type PrintAuditSource = 'CUSTOM_PRINT' | 'LIST_PRINT' | 'REPORT_VIEW';

export interface PrintAuditTarget {
  bizCode?: string;
  id: string;
  title?: string;
}

export interface PrintAuditRequest {
  bizType?: string;
  printName: string;
  recordTitle?: string;
  requestId: string;
  source: PrintAuditSource;
  targetTable?: string;
  targets: PrintAuditTarget[];
  templateId?: string;
}

export type PrintAuditOptions = Omit<PrintAuditRequest, 'requestId'> & { requestId?: string };

const silentErrorOptions = { errorMessageMode: 'none' as const };

export function recordPrintAudit(data: PrintAuditRequest) {
  return defHttp.post({ url: '/api/lims/lims/biz/print/audit', data }, silentErrorOptions);
}
