package com.fdkankan.ucenter.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fdkankan.ucenter.entity.ScenePlus;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fdkankan.ucenter.vo.RelicsSceneInitQueueDTO;
import com.fdkankan.ucenter.vo.request.AppSceneParam;
import com.fdkankan.ucenter.vo.request.LaserSceneParam;
import com.fdkankan.ucenter.vo.response.AppSceneVo;
import com.fdkankan.ucenter.vo.response.SceneNumVo;
import com.fdkankan.ucenter.vo.response.SceneVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 场景主表 Mapper 接口
 * </p>
 *
 * @author 
 * @since 2022-07-04
 */
@Mapper
public interface IScenePlusMapper extends BaseMapper<ScenePlus> {

    Page<AppSceneVo> pageList(Page<AppSceneVo> page, AppSceneParam param);

    Long getCountByUserId(@Param("userId") Long userId, @Param("cameraType") Integer cameraType);

    Long getSpaceSumByCameraId(@Param("cameraId") Long cameraId);

    List<SceneNumVo> getGroupBySceneSouceV4(@Param("userId")Long userId);
    List<SceneNumVo> getGroupBySceneSouceV3(@Param("userId")Long userId);

    List<ScenePlus> getCountByUserIdAndSceneSource(@Param("userId")Long userId,@Param("sceneSourceList") List<Integer> sceneSourceList, @Param("isObj")Integer isObj);

    Page<RelicsSceneInitQueueDTO> pageLaserScene(Page<RelicsSceneInitQueueDTO> page, LaserSceneParam param);

    Long getCountByAndIsObj(@Param("userId")Long userId, @Param("sceneSourceList")List<String> sourceList, @Param("isObj")Integer isObj,@Param("isLaser")Integer isLaser);

    List<SceneVo> getVoByNumList(@Param("numList")List<String> numList);
}
