import type { PageParam, PageResult } from '@vben/request';

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

export namespace MesPdTechConfirmApi {
  /** 产品技术确认函 */
  export interface TechConfirm {
    id?: number; // 编号
    confirmNo?: string; // 确认函编号
    customerId?: number; // 客户ID
    customerName?: string; // 客户名称
    productName?: string; // 产品名称
    specification?: string; // 规格型号
    techParams?: string; // 技术参数 JSON
    templateType?: string; // 模板类型
    drafterId?: number; // 编制人ID
    drafterName?: string; // 编制人姓名
    draftTime?: Date; // 编制时间
    reviewerId?: number; // 审核人ID
    reviewerName?: string; // 审核人姓名
    reviewTime?: Date; // 审核时间
    customerConfirmUser?: string; // 客户确认人
    customerConfirmTime?: Date; // 客户确认时间
    status?: number; // 状态
    remark?: string; // 备注
    createTime?: Date; // 创建时间
  }
}

/** 查询产品技术确认函分页 */
export function getTechConfirmPage(params: PageParam) {
  return requestClient.get<PageResult<MesPdTechConfirmApi.TechConfirm>>(
    '/mes/pd/tech-confirm/page',
    { params },
  );
}

/** 查询产品技术确认函详情 */
export function getTechConfirm(id: number) {
  return requestClient.get<MesPdTechConfirmApi.TechConfirm>(
    `/mes/pd/tech-confirm/get?id=${id}`,
  );
}

/** 新增产品技术确认函 */
export function createTechConfirm(data: MesPdTechConfirmApi.TechConfirm) {
  return requestClient.post('/mes/pd/tech-confirm/create', data);
}

/** 修改产品技术确认函 */
export function updateTechConfirm(data: MesPdTechConfirmApi.TechConfirm) {
  return requestClient.put('/mes/pd/tech-confirm/update', data);
}

/** 删除产品技术确认函 */
export function deleteTechConfirm(id: number) {
  return requestClient.delete(`/mes/pd/tech-confirm/delete?id=${id}`);
}

/** 导出产品技术确认函 */
export function exportTechConfirm(params: any) {
  return requestClient.download('/mes/pd/tech-confirm/export-excel', { params });
}
