/**
 * 养殖管理相关 API 接口
 */

import request from '@/common/utils/request'

export const farmingApi = {
  /**
   * 获取养殖场列表
   * @param {Object} params 查询参数
   */
  getFarmList(params) {
    return request.get('/farming/farms', { params })
  },

  /**
   * 获取养殖场详情
   * @param {number} id 养殖场ID
   */
  getFarmDetail(id) {
    return request.get(`/farming/farms/${id}`)
  },

  /**
   * 创建养殖场
   * @param {Object} farmData 养殖场数据
   */
  createFarm(farmData) {
    return request.post('/farming/farms', farmData)
  },

  /**
   * 更新养殖场信息
   * @param {number} id 养殖场ID
   * @param {Object} farmData 养殖场数据
   */
  updateFarm(id, farmData) {
    return request.put(`/farming/farms/${id}`, farmData)
  },

  /**
   * 删除养殖场
   * @param {number} id 养殖场ID
   */
  deleteFarm(id) {
    return request.delete(`/farming/farms/${id}`)
  },

  /**
   * 获取动物列表
   * @param {Object} params 查询参数
   */
  getAnimalList(params) {
    return request.get('/farming/animals', { params })
  },

  /**
   * 获取动物详情
   * @param {number} id 动物ID
   */
  getAnimalDetail(id) {
    return request.get(`/farming/animals/${id}`)
  },

  /**
   * 添加动物
   * @param {Object} animalData 动物数据
   */
  addAnimal(animalData) {
    return request.post('/farming/animals', animalData)
  },

  /**
   * 更新动物信息
   * @param {number} id 动物ID
   * @param {Object} animalData 动物数据
   */
  updateAnimal(id, animalData) {
    return request.put(`/farming/animals/${id}`, animalData)
  },

  /**
   * 删除动物
   * @param {number} id 动物ID
   */
  deleteAnimal(id) {
    return request.delete(`/farming/animals/${id}`)
  },

  /**
   * 获取健康记录
   * @param {Object} params 查询参数
   */
  getHealthRecords(params) {
    return request.get('/farming/health-records', { params })
  },

  /**
   * 添加健康记录
   * @param {Object} recordData 健康记录数据
   */
  addHealthRecord(recordData) {
    return request.post('/farming/health-records', recordData)
  },

  /**
   * 获取疫苗记录
   * @param {Object} params 查询参数
   */
  getVaccineRecords(params) {
    return request.get('/farming/vaccine-records', { params })
  },

  /**
   * 添加疫苗记录
   * @param {Object} recordData 疫苗记录数据
   */
  addVaccineRecord(recordData) {
    return request.post('/farming/vaccine-records', recordData)
  },

  /**
   * 获取饲料记录
   * @param {Object} params 查询参数
   */
  getFeedRecords(params) {
    return request.get('/farming/feed-records', { params })
  },

  /**
   * 添加饲料记录
   * @param {Object} recordData 饲料记录数据
   */
  addFeedRecord(recordData) {
    return request.post('/farming/feed-records', recordData)
  },

  /**
   * 获取生产记录
   * @param {Object} params 查询参数
   */
  getProductionRecords(params) {
    return request.get('/farming/production-records', { params })
  },

  /**
   * 添加生产记录
   * @param {Object} recordData 生产记录数据
   */
  addProductionRecord(recordData) {
    return request.post('/farming/production-records', recordData)
  },

  /**
   * 获取统计数据
   * @param {Object} params 查询参数
   */
  getStatistics(params) {
    return request.get('/farming/statistics', { params })
  },

  /**
   * 获取环境监测数据
   * @param {Object} params 查询参数
   */
  getEnvironmentData(params) {
    return request.get('/farming/environment', { params })
  },

  /**
   * 添加环境监测数据
   * @param {Object} envData 环境数据
   */
  addEnvironmentData(envData) {
    return request.post('/farming/environment', envData)
  },

  /**
   * 获取设备列表
   * @param {Object} params 查询参数
   */
  getEquipmentList(params) {
    return request.get('/farming/equipment', { params })
  },

  /**
   * 添加设备
   * @param {Object} equipmentData 设备数据
   */
  addEquipment(equipmentData) {
    return request.post('/farming/equipment', equipmentData)
  },

  /**
   * 更新设备状态
   * @param {number} id 设备ID
   * @param {Object} statusData 状态数据
   */
  updateEquipmentStatus(id, statusData) {
    return request.put(`/farming/equipment/${id}/status`, statusData)
  },

  /**
   * 获取报警信息
   * @param {Object} params 查询参数
   */
  getAlerts(params) {
    return request.get('/farming/alerts', { params })
  },

  /**
   * 处理报警
   * @param {number} id 报警ID
   * @param {Object} handleData 处理数据
   */
  handleAlert(id, handleData) {
    return request.put(`/farming/alerts/${id}/handle`, handleData)
  }
}