package com.xhpc.card.service;

import com.xhpc.common.core.domain.R;
import com.xhpc.card.domain.CoreParam;
import com.xhpc.card.domain.OrderRatio;
import com.xhpc.card.domain.OrderTrend;
import com.xhpc.card.domain.RealtimeOrders;

import java.util.List;
import java.util.Map;

/**
 * @author WH
 * @date 2022/2/28 17:13
 * @since version-1.0
 */
public interface XhpcDataBigScreenService {

    /**
     * return multiple location infos
     *
     * @author WH
     * @date 2022/2/28 17:16
     * @since version-1.0
     */
    R<List<Map<String, Object>>> returnCoreLocation(CoreParam coreParam);

    R returnCoreChargingStation(CoreParam coreParam);

    /**
     * query total count of user
     *
     * @author WH
     * @date 2022/3/3 18:34
     * @since version-1.0
     */
    R<Object> queryUserTotalCount(CoreParam coreParam);

    /**
     * query activation of user
     *
     * @author WH
     * @date 2022/3/9 13:54
     * @since version-1.0
     */
    R<Object> queryUserActivation(CoreParam coreParam);

    /**
     * query charge electric quantity
     *
     * @author WH
     * @date 2022/3/9 15:53
     * @since version-1.0
     */
    R<Object> queryElectricQuantity(CoreParam coreParam);

    /**
     * query order ratio by multiple kind of area
     *
     * @author WH
     * @date 2022/3/9 17:35
     * @since version-1.0
     */
    R<OrderRatio> queryOrderRatio(CoreParam coreParam);

    /**
     * 枪使用率
     * @param coreParam
     * @return
     */
    R queryTerminalGun(CoreParam coreParam);
    /**
     * query realtime by coreParam
     *
     * @param coreParam
     * @return
     */
    R<RealtimeOrders> queryRealtimeOrders(CoreParam coreParam);

    R<OrderTrend> queryOrderTrend(CoreParam coreParam);

    R queryWorkOrder(CoreParam coreParam);
}
