import type { PageParam, PageResult } from '#/packages/effects/request/src';

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

export namespace MesPdDocumentAuditApi {
  /** 资料审核 */
  export interface DocumentAudit {
    id?: number;
    /** 审核单号 */
    auditNo?: string;
    /** 资料ID */
    documentId?: number;
    /** 资料名称（冗余） */
    documentName?: string;
    /** 资料版本（冗余） */
    documentVersion?: string;
    /** 审核人（用户ID） */
    reviewer?: number;
    /** 审核人名称 */
    reviewerNickname?: string;
    /** 审核状态（字典 mes_pd_document_audit_status） */
    auditStatus?: number;
    /** 审核时间 */
    auditTime?: number;
    /** 备注 */
    remark?: string;
    /** 创建时间 */
    createTime?: number;
  }

  export interface PageParams extends PageParam {
    auditNo?: string;
    documentId?: number;
    documentName?: string;
    auditStatus?: number;
  }
}

/** 获取资料审核分页（上传资料时后端自动创建，前端无需调用 create） */
export function getPdDocumentAuditPage(
  params: MesPdDocumentAuditApi.PageParams,
) {
  return requestClient.get<PageResult<MesPdDocumentAuditApi.DocumentAudit>>(
    '/mes/pd/document-audit/page',
    { params },
  );
}

export function getPdDocumentAudit(id: number) {
  return requestClient.get<MesPdDocumentAuditApi.DocumentAudit>(
    `/mes/pd/document-audit/get?id=${id}`,
  );
}

export function updatePdDocumentAudit(data: MesPdDocumentAuditApi.DocumentAudit) {
  return requestClient.put('/mes/pd/document-audit/update', data);
}

export function deletePdDocumentAudit(id: number) {
  return requestClient.delete(`/mes/pd/document-audit/delete?id=${id}`);
}

export function exportPdDocumentAudit(
  params: MesPdDocumentAuditApi.PageParams,
) {
  return requestClient.download('/mes/pd/document-audit/export-excel', {
    params,
  });
}
