import type { ConnectInfoModel } from './model';

import type { BaseResult } from '#/api/base-result';

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

// API路径常量枚举
enum Api {
  // 导出
  export = '/sysHandoverItems/items/export',
  // 列表查询
  list = '/sysHandoverItems/items/list',
  // 基础路径
  root = '/sysHandoverItems/items',
  // 发起交接事项
  initiate = '/sysHandoverItems/items/initiate',
}

/**
 * 查询交接事项列表
 * @param params 查询参数
 * @returns 分页结果
 */
export function connectInfoList(params: any) {
  return requestClient.get<BaseResult<ConnectInfoModel[]>>(Api.list, {
    params,
  });
}

/**
 * 获取交接事项详细信息
 * @param id 交接事项ID
 * @returns 交接事项详情
 */
export function getConnectInfoDetail(id: number) {
  return requestClient.get<ConnectInfoModel>(`${Api.root}/${id}`);
}

/**
 * 新增交接事项
 * @param data 交接事项数据
 * @returns 操作结果
 */
export function addConnectInfo(data: ConnectInfoModel) {
  return requestClient.post(Api.root, data, {
    successMessageMode: 'message',
  });
}

/**
 * 修改交接事项
 * @param data 交接事项数据
 * @returns 操作结果
 */
export function updateConnectInfo(data: ConnectInfoModel) {
  return requestClient.put(Api.root, data, {
    successMessageMode: 'message',
  });
}

/**
 * 删除交接事项
 * @param ids 交接事项ID数组
 * @returns 操作结果
 */
export function deleteConnectInfo(ids: number[]) {
  return requestClient.delete(`${Api.root}/${ids.join(',')}`, {
    successMessageMode: 'message',
  });
}

/**
 * 导出交接事项列表
 * @param data 导出参数
 * @returns 导出结果
 */
export function exportConnectInfo(data: Partial<ConnectInfoModel>) {
  return commonExport(Api.export, data);
}

/**
 * 发起交接事项
 * @param data 发起参数
 * @returns 操作结果
 */
export function initiateConnectInfo(data: any) {
  return requestClient.post(Api.initiate, data, {
    successMessageMode: 'message',
  });
}
