package com.jsowell.thirdparty.service;

import com.jsowell.pile.dto.*;
import com.jsowell.thirdparty.domain.StationStatsInfo;
import com.jsowell.thirdparty.vo.*;

import java.util.List;

public interface LianLianService {

	/**
	 * 根据运营商id，推送运营商信息
	 * @param merchantId
	 */
	void pushMerchantInfo(Long merchantId);

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

	/**
	 * 联联平台获取充电站信息
	 * @param dto
	 * @return
	 */
	LianLianPageResponse query_stations_info(QueryStationInfoDTO dto);

	/**
	 * 设备接口状态查询
	 * 此接口用于批量查询设备实时状态
	 *
	 * @param StationIDs
	 * @return
	 */
	LianLianPageResponse query_station_status(List<String> StationIDs);


	/**
	 * 查询统计信息
	 * @param dto
	 * @return
	 */
	StationStatsInfo query_station_stats(QueryStationInfoDTO dto);


	/**
	 * 请求设备认证
	 * @param dto
	 * @return
	 */
	EquipmentAuthVO query_equip_auth(QueryEquipmentDTO dto);

	/**
	 * 请求开始充电
	 * @param dto
	 * @return
	 */
	QueryStartChargeVO query_start_charge(QueryStartChargeDTO dto);

	/**
	 * 查询充电状态
	 * @param startChargeSeq
	 */
	QueryChargingStatusVO query_equip_charge_status(String startChargeSeq);

	/**
	 * 请求停止充电
	 * @param dto
	 * @return
	 */
	QueryStopChargeVO query_stop_charge(QueryStartChargeDTO dto);

	/**
	 * 联联平台获取令牌
	 * @param operatorId
	 * @param operatorSecret
	 * @return
	 */
	String getToken(String operatorId, String operatorSecret);

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

	/**
	 * 推送订单信息
	 * @param orderCode
	 * @return
	 */
	String pushOrderInfo(String orderCode);
}
