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

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

export namespace ErpWarehouseMappingApi {
  /** 仓库映射 */
  export interface WarehouseMapping {
    id?: number; // 映射编号
    erpWarehouseId: number; // ERP仓库ID
    erpWarehouseName?: string; // ERP仓库名称
    mesWarehouseId: number; // MES仓库ID
    mesWarehouseName?: string; // MES仓库名称
    status: number; // 状态(0:禁用 1:启用)
    createTime?: Date; // 创建时间
  }
}

/** 分页查询映射列表 */
export function getMappingPage(params: PageParam) {
  return requestClient.get<PageResult<ErpWarehouseMappingApi.WarehouseMapping>>(
    '/erp/warehouse-mapping/page',
    { params },
  );
}

/** 获取单个映射 */
export function getMapping(id: number) {
  return requestClient.get<ErpWarehouseMappingApi.WarehouseMapping>(
    '/erp/warehouse-mapping/get',
    {
      params: { id },
    },
  );
}

/** 获取映射简单列表 */
export function getMappingSimpleList() {
  return requestClient.get<ErpWarehouseMappingApi.WarehouseMapping[]>(
    '/erp/warehouse-mapping/simple-list',
  );
}

/** 根据ERP仓库ID获取MES仓库映射 */
export function getMappingByErpWarehouseId(erpWarehouseId: number) {
  return requestClient.get<ErpWarehouseMappingApi.WarehouseMapping>(
    '/erp/warehouse-mapping/get-by-erp',
    {
      params: { erpWarehouseId },
    },
  );
}

/** 新增映射 */
export function createMapping(data: ErpWarehouseMappingApi.WarehouseMapping) {
  return requestClient.post('/erp/warehouse-mapping/create', data);
}

/** 更新映射 */
export function updateMapping(data: ErpWarehouseMappingApi.WarehouseMapping) {
  return requestClient.put('/erp/warehouse-mapping/update', data);
}

/** 删除映射 */
export function deleteMapping(id: number) {
  return requestClient.delete('/erp/warehouse-mapping/delete', {
    params: { id },
  });
}
