package com.jsowell.thirdparty.zhongdianlian.service;

import com.jsowell.pile.dto.PushStationInfoDTO;
import com.jsowell.pile.dto.QueryStationInfoDTO;
import com.jsowell.thirdparty.lianlian.dto.CommonParamsDTO;
import com.jsowell.thirdparty.zhongdianlian.dto.ZDLGetTokenDTO;

import java.io.UnsupportedEncodingException;
import java.util.Map;

/**
 * 中电联 Service
 *
 * @author Lemon
 * @Date 2023/9/2 13:53
 */
public interface ZDLService {

    /**
     * 获取令牌
     * @param dto
     * @return
     */
    public String ZDLGetToken(ZDLGetTokenDTO dto);

    /**
     * 根据充电站id，推送充电站信息
     * @param dto
     */
    String pushStationInfo(PushStationInfoDTO dto);

    /**
     * 查询站点信息
     * @param dto
     * @return
     */
    public Map<String, String> queryStationsInfo(QueryStationInfoDTO dto);


    /**
     * 查询统计信息
     * @param dto
     * @return
     */
    Map<String, String> queryStationStats(QueryStationInfoDTO dto);


    /**
     * 设备接口状态查询
     * 此接口用于批量查询设备实时状态
     *
     * @param dto
     * @return
     */
    Map<String, String> queryStationStatus(QueryStationInfoDTO dto);


    /**
     * 设备状态变化推送
     * @param pileConnectorCode
     * @param status
     * @return
     */
    String notificationStationStatus(String pileConnectorCode, String status);


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

    /**
     * 生成token
     * @param dto
     * @return
     */
    Map<String, String> generateToken(CommonParamsDTO dto) throws UnsupportedEncodingException;
}
