import type { PageParam, PageResult } from "#/packages/effects/request/src";

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

export namespace MdmUnitApi {
  /** 计量单位信息 */
  export interface Unit {
    id?: number; // 单位编号
    code: string; // 单位编码
    name: string; // 单位名称
    primaryFlag?: boolean; // 是否主单位
    primaryId?: number; // 主单位编号
    changeRate?: number; // 与主单位换算比例
    status: number; // 状态（0:启用, 1:禁用）
    remark?: string; // 备注
  }
}

/** 查询计量单位分页 */
export function getUnitPage(params: PageParam) {
  return requestClient.get<PageResult<MdmUnitApi.Unit>>("/mdm/unit/page", {
    params,
  });
}

/** 查询计量单位列表（根据ID） */
export function getUnitListByIds(ids: string) {
  return requestClient.get<MdmUnitApi.Unit[]>(`/mdm/unit/list-by-ids?ids=${ids}`);
}

/** 查询计量单位详情 */
export function getUnit(id: number) {
  return requestClient.get<MdmUnitApi.Unit>(`/mdm/unit/get?id=${id}`);
}

/** 新增计量单位 */
export function createUnit(data: MdmUnitApi.Unit) {
  return requestClient.post("/mdm/unit/create", data);
}

/** 修改计量单位 */
export function updateUnit(data: MdmUnitApi.Unit) {
  return requestClient.put("/mdm/unit/update", data);
}

/** 删除计量单位 */
export function deleteUnit(id: number) {
  return requestClient.delete(`/mdm/unit/delete?id=${id}`);
}
