package com.xiaoniu.system.platformusers.user.mapper;

import com.xiaoniu.common.core.vo.LabelAndValueNameVO;
import com.xiaoniu.common.core.vo.LabelAndValueVO;
import com.xiaoniu.common.mybatis.mapper.BaseMapperPlus;
import com.xiaoniu.system.datastatistics.dto.DataStatisticsQueryDTO;
import com.xiaoniu.system.datastatistics.vo.RealTimeDataVO;
import com.xiaoniu.system.platformusers.user.domain.TbClientUser;
import com.xiaoniu.system.platformusers.user.dto.ClientUserListQueryDTO;
import com.xiaoniu.system.platformusers.user.vo.ClientUserDetailsVO;
import com.xiaoniu.system.platformusers.user.vo.ClientUserListVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 用户端用户信息表 Mapper 接口
 * </p>
 *
 * @author haoxuyang
 * @since 2024-10-14 11:55:30
 */
@Mapper
public interface TbClientUserMapper extends BaseMapperPlus<TbClientUserMapper, TbClientUser, TbClientUser> {

    /**
     * 平台用户列表
     *
     * @param dto dto
     * @return List<ClientUserListVO>
     */
    List<ClientUserListVO> getClientUserList(ClientUserListQueryDTO dto);

    /**
     * 平台用户详情
     *
     * @param id 用户id
     * @return ClientUserDetailsVO
     */
    ClientUserDetailsVO details(@Param("id") Long id);

    /**
     * 实时数据
     *
     * @param dto dto
     * @return RealTimeDataVO
     */
    RealTimeDataVO realTimeData(DataStatisticsQueryDTO dto);

    /**
     * 用户行为统计
     * @param dto dto
     * @return  List<LabelAndValueVO>
     */
    List<LabelAndValueNameVO> userBehaviorStatistics(DataStatisticsQueryDTO dto);
}
