package com.qiaoba.api.auth.service;

import com.qiaoba.api.auth.entity.OnlineUser;
import com.qiaoba.common.base.entity.BasePage;

import java.util.List;

/**
 * 在线用户 服务层
 *
 * @author ailanyin
 * @version 1.0
 * @since 2023/5/25 17:15
 */
public interface OnlineUserService {

    /**
     * 新增
     *
     * @param onlineUser onlineUser
     */
    void insert(OnlineUser onlineUser);

    /**
     * 删除(强退)
     *
     * @param username  登录账号
     * @param deviceSn  设备号
     * @param deleteOwn 是否是删除自己
     */
    void deleteOne(String username, String deviceSn, Boolean deleteOwn);

    /**
     * 删除(强退)
     *
     * @param username 登录账号
     */
    void deleteAll(String username);

    /**
     * 查询
     *
     * @param username 登录账号
     * @param deviceSn deviceSn
     * @return 在线用户
     */
    OnlineUser selectOne(String username, String deviceSn);

    /**
     * 批量查询
     *
     * @param username username
     * @return list
     */
    List<OnlineUser> selectList(String username);

    /**
     * 检查设备是否是最新登陆的设备
     *
     * @param username username
     * @param deviceSn deviceSn
     * @return 结果
     */
    Boolean checkIsLastLogged(String username, String deviceSn);

    /**
     * 分页查询列表
     *
     * @param pageNum  pageNum
     * @param pageSize pageSize
     * @param username username
     * @return list
     */
    BasePage selectPageList(Integer pageNum, Integer pageSize, String username);
}
