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

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

export namespace BpmBusinessAttachApi {
  /** 业务附件配置 */
  export interface BusinessAttach {
    id: number;
    processDefinitionKey: string;
    businessType?: string;
    componentPath: string;
    status: number;
    remark?: string;
    createTime?: string;
  }
}

/** 查询业务附件配置分页 */
export async function getBusinessAttachPage(params: PageParam) {
  return requestClient.get<PageResult<BpmBusinessAttachApi.BusinessAttach>>(
    '/bpm/business-attach/page',
    { params },
  );
}

/** 查询业务附件配置详情 */
export async function getBusinessAttach(id: number) {
  return requestClient.get<BpmBusinessAttachApi.BusinessAttach>(
    `/bpm/business-attach/get?id=${id}`,
  );
}

/** 新增业务附件配置 */
export async function createBusinessAttach(
  data: BpmBusinessAttachApi.BusinessAttach,
) {
  return requestClient.post<number>('/bpm/business-attach/create', data);
}

/** 修改业务附件配置 */
export async function updateBusinessAttach(
  data: BpmBusinessAttachApi.BusinessAttach,
) {
  return requestClient.put<boolean>('/bpm/business-attach/update', data);
}

/** 删除业务附件配置 */
export async function deleteBusinessAttach(id: number) {
  return requestClient.delete<boolean>(
    `/bpm/business-attach/delete?id=${id}`,
  );
}
