import request from "@/utils/request";

const THIRDPARTYEQUIPMENTINFO_BASE_URL = "/api/v1/third-party-charging/equipments";

const ThirdPartyEquipmentInfoAPI = {
  /** 获取第三方充电设备信息分页数据 */
  getPage(data: ThirdPartyEquipmentInfoForm) {
    return request<any, PageResult<ThirdPartyEquipmentInfoPageVO[]>>({
      url: `${THIRDPARTYEQUIPMENTINFO_BASE_URL}/page`,
      method: "post",
      data,
    });
  },

  /**
   * 导出充电桩信息
   *
   * @param params 查询参数
   * @returns Excel文件流
   */
  export(params: ThirdPartyEquipmentInfoPageQuery) {
    return request({
      url: `${THIRDPARTYEQUIPMENTINFO_BASE_URL}/export`,
      method: "get",
      params,
      responseType: "arraybuffer",
    });
  },

  /**
   * 修改充电桩提示语
   *
   * @param data 修改参数
   * @returns 影响行数
   */
  updateTips(data: ConnectorTipsUpdateDTO) {
    return request<any, number>({
      url: `${THIRDPARTYEQUIPMENTINFO_BASE_URL}/tips/update`,
      method: "post",
      data,
    });
  },

  /**
   * 获取第三方充电设备信息表单数据
   *
   * @param id 第三方充电设备信息ID
   * @returns 第三方充电设备信息表单数据
   */
  getFormData(id: number) {
    return request<any, ThirdPartyEquipmentInfoForm>({
      url: `${THIRDPARTYEQUIPMENTINFO_BASE_URL}/${id}/form`,
      method: "get",
    });
  },

  /**
   *  添加第三方充电设备信息
   *
   *  @param data 第三方充电设备信息表单数据
   */
  create(data: ThirdPartyEquipmentInfoForm) {
    return request({
      url: `${THIRDPARTYEQUIPMENTINFO_BASE_URL}`,
      method: "post",
      data,
    });
  },

  /**
   * 更新第三方充电设备信息
   *
   * @param id 第三方充电设备信息ID
   * @param data 第三方充电设备信息表单数据
   */
  update(id: string, data: ThirdPartyEquipmentInfoForm) {
    return request({
      url: `${THIRDPARTYEQUIPMENTINFO_BASE_URL}/${id}`,
      method: "put",
      data,
    });
  },

  /**
   * 批量删除第三方充电设备信息，多个以英文逗号(,)分割
   *
   * @param ids 第三方充电设备信息ID字符串，多个以英文逗号(,)分割
   */
  deleteByIds(ids: string) {
    return request({
      url: `${THIRDPARTYEQUIPMENTINFO_BASE_URL}/${ids}`,
      method: "delete",
    });
  },
};

export default ThirdPartyEquipmentInfoAPI;

/** 充电桩提示语修改参数 */
export interface ConnectorTipsUpdateDTO {
  /** 充电桩ID（单个修改时使用） */
  id?: number;
  /** 充电桩ID列表（批量修改时使用） */
  ids?: number[];
  /** 充电站ID（按站点批量修改时使用） */
  stationInfoId?: number;
  /** 充电提示语 */
  connectorTips?: string;
}

/** 第三方充电设备信息分页查询参数 */
export interface ThirdPartyEquipmentInfoPageQuery extends PageQuery {
  /** 设备编码 */
  equipmentId?: string;
  /** 设备名称 */
  equipmentName?: string;
}

/** 第三方充电设备信息表单对象 */
export interface ThirdPartyEquipmentInfoForm {
  /** 设备编码 */
  equipmentId?: string;
  /** 生产商名称 */
  manufacturerName?: string;
  /** 总功率(kW) */
  power?: number;
  /** 设备名称 */
  equipmentName?: string;
}

/** 第三方充电设备信息分页对象 */
export interface ThirdPartyEquipmentInfoPageVO {
  /** 设备编码 */
  equipmentId?: string;
  /** 所属充电站ID */
  stationId?: string;
  /** 生产商名称 */
  manufacturerName?: string;
  /** 总功率(kW) */
  power?: number;
  /** 设备名称 */
  equipmentName?: string;
}
