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

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

export namespace MesPdParameterApi {
  /** 工艺参数 */
  export interface Parameter {
    id?: number;
    paramCode?: string;
    paramName?: string;
    paramType?: number;
    unitMeasureId?: number;
    unitMeasureName?: string;
    required?: boolean;
    remark?: string;
    createTime?: Date;
  }
}

/** 查询工艺参数分页 */
export function getParameterPage(params: PageParam & {
  paramCode?: string;
  paramName?: string;
  paramType?: number;
}) {
  return requestClient.get<PageResult<MesPdParameterApi.Parameter>>(
    '/mes/pd/process-param/page',
    { params },
  );
}

/** 查询工艺参数精简列表 */
export function getParameterSimpleList() {
  return requestClient.get<MesPdParameterApi.Parameter[]>(
    '/mes/pd/process-param/simple-list',
  );
}

/** 查询工艺参数详情 */
export function getParameter(id: number) {
  return requestClient.get<MesPdParameterApi.Parameter>(
    `/mes/pd/process-param/get?id=${id}`,
  );
}

/** 新增工艺参数 */
export function createParameter(data: MesPdParameterApi.Parameter) {
  return requestClient.post(
    '/mes/pd/process-param/create',
    data,
  );
}

/** 修改工艺参数 */
export function updateParameter(data: MesPdParameterApi.Parameter) {
  return requestClient.put(
    '/mes/pd/process-param/update',
    data,
  );
}

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

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