package cn.iocoder.byzs.module.system.service.logger;

import cn.iocoder.byzs.framework.common.pojo.PageResult;
import cn.iocoder.byzs.module.system.api.logger.dto.LoginLogCreateReqDTO;
import cn.iocoder.byzs.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO;
import cn.iocoder.byzs.module.system.dal.dataobject.logger.LoginLogDO;
import jakarta.validation.Valid;
import org.apache.ibatis.annotations.Param;

import java.util.Set;

/**
 * 登录日志 Service 接口
 */
public interface LoginLogService {

    /**
     * 获得登录日志分页
     *
     * @param pageReqVO 分页条件
     * @return 登录日志分页
     */
    PageResult<LoginLogDO> getLoginLogPage(LoginLogPageReqVO pageReqVO);

    /**
     * 创建登录日志
     *
     * @param reqDTO 日志信息
     */
    void createLoginLog(@Valid LoginLogCreateReqDTO reqDTO);

    /**
     * 查询登录用户ip集
     *
     * @param userId 日志信息
     */
    Set<String> selectIpListByUserId(@Param("userId") Long userId);

}
