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

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

export namespace MesDvMeteringCheckApi {
  /** MES 计量检测记录 */
  export interface MeteringCheck {
    id?: number; // 主键ID
    meteringId?: number; // 计量器具ID
    meteringCode?: string; // 计量器具编码
    meteringName?: string; // 计量器具名称
    checkCode?: string; // 检测编号
    checkDate?: string; // 检测日期
    checkOrg?: string; // 检测机构
    checkResult?: number; // 检测结论（字典）
    certNo?: string; // 证书编号
    checkUserId?: number; // 检测人编号
    checkUserNickname?: string; // 检测人昵称
    nextCheckDate?: string; // 下次检测日期
    remark?: string; // 备注
    createTime?: Date; // 创建时间
  }
}

/** 查询计量检测记录分页 */
export function getMeteringCheckPage(params: PageParam) {
  return requestClient.get<PageResult<MesDvMeteringCheckApi.MeteringCheck>>(
    '/mes/dv/metering-check/page',
    { params },
  );
}

/** 查询计量检测记录详情 */
export function getMeteringCheck(id: number) {
  return requestClient.get<MesDvMeteringCheckApi.MeteringCheck>(
    `/mes/dv/metering-check/get?id=${id}`,
  );
}

/** 新增计量检测记录 */
export function createMeteringCheck(data: MesDvMeteringCheckApi.MeteringCheck) {
  return requestClient.post<number>('/mes/dv/metering-check/create', data);
}

/** 修改计量检测记录 */
export function updateMeteringCheck(data: MesDvMeteringCheckApi.MeteringCheck) {
  return requestClient.put('/mes/dv/metering-check/update', data);
}

/** 删除计量检测记录 */
export function deleteMeteringCheck(id: number) {
  return requestClient.delete(`/mes/dv/metering-check/delete?id=${id}`);
}

/** 导出计量检测记录 */
export function exportMeteringCheck(params: any) {
  return requestClient.download('/mes/dv/metering-check/export-excel', {
    params,
  });
}
