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

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

export namespace MesProLineApi {
  /** MES 产线 */
  export interface Line {
    id?: number; // 编号
    code?: string; // 产线编码
    name?: string; // 产线名称
    status?: number; // 状态（字典 common_status）
    remark?: string; // 备注
    createTime?: string; // 创建时间
  }

  /** 产线分页查询参数 */
  export interface PageParams extends PageParam {
    code?: string;
    name?: string;
    status?: number;
    createTime?: string[];
  }
}

/** 查询产线分页 */
export function getLinePage(params: MesProLineApi.PageParams) {
  return requestClient.get<PageResult<MesProLineApi.Line>>(
    '/mes/pro/line/page',
    { params },
  );
}

/** 查询产线精简列表（供下拉选择，仅启用的产线） */
export function getLineSimpleList() {
  return requestClient.get<MesProLineApi.Line[]>('/mes/pro/line/simple-list');
}

/** 查询产线详情 */
export function getLine(id: number) {
  return requestClient.get<MesProLineApi.Line>(`/mes/pro/line/get?id=${id}`);
}

/** 新增产线 */
export function createLine(data: MesProLineApi.Line) {
  return requestClient.post('/mes/pro/line/create', data);
}

/** 修改产线 */
export function updateLine(data: MesProLineApi.Line) {
  return requestClient.put('/mes/pro/line/update', data);
}

/** 删除产线 */
export function deleteLine(id: number) {
  return requestClient.delete(`/mes/pro/line/delete?id=${id}`);
}

/** 导出产线 Excel */
export function exportLineExcel(params: MesProLineApi.PageParams) {
  return requestClient.download('/mes/pro/line/export-excel', { params });
}
