import { http, Method } from '@/utils/request';
import storage from "@/utils/storage.js";
const userInfo = storage.getUserInfo()
/**
 * 根据任务类型统计数量
 *	@param {Object} params - 查询参数
 */
export function countStatusTypeTasks(params) {
  params.userId = userInfo.userid;
  return http.request({
    url: '/base/tasks/countType',
    method: Method.POST,
	data: params
  });
}

/**
 * 获取农事任务列表
 * @param {Object} params - 查询参数
 * @returns {Promise} - 返回任务列表
 */
export function getAgriculturalTasksList(params) {
  return http.request({
    url: '/base/tasks/list',
    method: Method.GET,
    params: params
  });
}

/**
 * 获取农事任务详情
 * @param {Number} id - 任务ID
 * @returns {Promise} - 返回任务详情
 */
export function getAgriculturalTasksById(id) {
  return http.request({
    url: `/base/tasks/${id}`,
    method: Method.GET
  });
}

/**
 * 新增农事任务
 * @param {Object} data - 任务数据
 * @returns {Promise} - 返回添加结果
 */
export function addAgriculturalTask(data) {
  return http.request({
    url: '/base/tasks',
    method: Method.POST,
    data: data
  });
}

/**
 * 修改农事任务
 * @param {Object} data - 任务数据
 * @returns {Promise} - 返回修改结果
 */
export function updateAgriculturalTask(data) {
  return http.request({
    url: '/base/tasks',
    method: Method.PUT,
    data: data
  });
}

/**
 * 删除农事任务
 * @param {Array} ids - 任务ID数组
 * @returns {Promise} - 返回删除结果
 */
export function deleteAgriculturalTasks(ids) {
  return http.request({
    url: `/base/tasks/${ids.join(',')}`,
    method: Method.DELETE
  });
}

/**
 * 修改农事任务状态
 * @param {Number} id - 任务ID
 * @param {String} status - 任务状态
 * @returns {Promise} - 返回修改结果
 */
export function updateTaskStatus(id, status) {
  return http.request({
    url: '/base/tasks',
    method: Method.PUT,
    data: {
      id: id,
      taskStatus: status
    }
  });
}

/**
 * 完成农事任务
 * @param {Object} data - 完成任务的数据
 * @returns {Promise} - 返回操作结果
 */
export function completeTask(data) {
  // 任务完成时的专用接口，包含完成时间和完成说明等信息
  return http.request({
    url: '/base/tasks',
    method: Method.PUT,
    data: {
      ...data,
      taskStatus: 'completed'
    }
  });
} 