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

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

export namespace MesPdTemplateApi {
  /** 模板明细 */
  export interface TemplateDetail {
    id?: number;
    templateId?: number;
    processParamId?: number;
    paramCode?: string;
    paramName?: string;
    paramType?: number;
    unitMeasureName?: string;
    required?: boolean;
    remark?: string;
  }

  /** 工艺参数模板 */
  export interface Template {
    id?: number;
    templateCode?: string;
    templateName?: string;
    templateType?: number;
    remark?: string;
    details?: TemplateDetail[];
    createTime?: Date;
  }
}

/** 查询工艺参数模板分页 */
export function getTemplatePage(
  params: PageParam & {
    templateCode?: string;
    templateName?: string;
    templateType?: number;
  },
) {
  return requestClient.get<PageResult<MesPdTemplateApi.Template>>("/mes/pd/process-param-template/page", { params });
}

/** 查询工艺参数模板详情 */
export function getTemplate(id: number) {
  return requestClient.get<MesPdTemplateApi.Template>(`/mes/pd/process-param-template/get?id=${id}`);
}

/** 新增工艺参数模板 */
export function createTemplate(data: MesPdTemplateApi.Template) {
  return requestClient.post("/mes/pd/process-param-template/create", data);
}

/** 修改工艺参数模板 */
export function updateTemplate(data: MesPdTemplateApi.Template) {
  return requestClient.put("/mes/pd/process-param-template/update", data);
}

/** 删除工艺参数模板 */
export function deleteTemplate(id: number) {
  return requestClient.delete(`/mes/pd/process-param-template/delete?id=${id}`);
}

/** 导出工艺参数模板 */
export function exportTemplateExcel(params: any) {
  return requestClient.download("/mes/pd/process-param-template/export-excel", { params });
}
