package com.jsowell.thirdparty.amap.service;

import com.jsowell.pile.dto.amap.GetStationInfoDTO;
import com.jsowell.thirdparty.amap.domain.AMapEquipmentInfo;
import com.jsowell.thirdparty.amap.domain.AMapStationInfo;

import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;

/**
 * 高德地图Service
 *
 * @author Lemon
 * @Date 2023/6/14 11:38
 */
public interface AMapService {

    /**
     * 高德拉取充电站静态数据
     * @param dto
     * @return
     */
    List<AMapStationInfo> getStationInfos(GetStationInfoDTO dto) throws ExecutionException, InterruptedException;

    /**
     * 商家推送充电设备动态数据
     * @param stationId
     * @return
     * @throws Exception
     */
    String pushChargingDeviceDynamics(String stationId) throws Exception;

    /**
     * 商家推送充电订单信息
     * @param orderCode
     * @return
     */
    String pushChargingOrderInfo(String orderCode);

    List<AMapStationInfo> getStationInfosV2(GetStationInfoDTO dto);

    /**
     * 推送站点信息
     * 站点状态如有变化，（上线、下线）调用此接口
     * @param stationIds 站点idList
     * @param status 更改站点状态（1：上线，0：下线）
     * @return
     */
    String pushStationInfo(List<String> stationIds, String status) throws Exception;

    Map<String, List<AMapEquipmentInfo>> getPileListByStationIdList(List<String> stationIdList);
}
