package com.zsElectric.boot.thirdParty.service;

import com.zsElectric.boot.thirdParty.model.ThirdPartyRequest;
import com.zsElectric.boot.thirdParty.model.ThirdPartyResponse;

/**
 * 第三方Token服务接口
 *
 * @author wzq
 */
public interface ThirdPartyTokenService {

    /**
     * 处理获取Token请求
     *
     * @param request 第三方请求参数
     * @return 响应结果
     */
    ThirdPartyResponse queryToken(ThirdPartyRequest request);

    /**
     * 获取充值档位分页列表
     *
     * @param request       第三方请求参数
     * @param authorization 请求头中的Authorization (格式: Bearer {accessToken})
     * @return 响应结果
     */
    ThirdPartyResponse queryRechargeLevelPage(ThirdPartyRequest request, String authorization);

    ThirdPartyResponse queryUserInfo(ThirdPartyRequest request, String authorization);

    ThirdPartyResponse chargeOrderPay(ThirdPartyRequest request, String authorization);

    /**
     * 获取充电站列表
     *
     * @param request       第三方请求参数
     * @param authorization 请求头中的Authorization
     * @return 响应结果
     */
    ThirdPartyResponse queryChargeStationList(ThirdPartyRequest request, String authorization);

    /**
     * 获取充电站详情与充电设备列表
     *
     * @param request       第三方请求参数
     * @param authorization 请求头中的Authorization
     * @return 响应结果
     */
    ThirdPartyResponse queryChargeStationDetail(ThirdPartyRequest request, String authorization);

    /**
     * 获取充电设备详情
     *
     * @param request       第三方请求参数
     * @param authorization 请求头中的Authorization
     * @return 响应结果
     */
    ThirdPartyResponse queryChargeDeviceDetail(ThirdPartyRequest request, String authorization);
}
