package com.sunxung.factoring.service.sys;

import java.util.List;

import com.sunxung.factoring.component.enums.ClientTypeEnum;
import com.sunxung.factoring.entity.BaseSearch;
import com.sunxung.factoring.entity.GridPage;
import com.sunxung.factoring.entity.sys.Session;
import com.sunxung.factoring.entity.sys.User;
import com.sunxung.factoring.service.sys.dto.LoginResultDto;

public interface SessionService {

    Session add(Session session);

    Session update(Session session);

    boolean delete(Long id);

    Session get(Long id);

    List<Session> findByUserId(Long userId);

    boolean deleteByUserId(Long userId);

    GridPage<Session> findSessionsForPage(BaseSearch search);

    List<Session> findAll();

    void timeout();

    int countBySearch();


    /**
     * 清除token
     * @param clientTypeEnum
     * @return
     */
    LoginResultDto createTokenAndSession(ClientTypeEnum clientTypeEnum, User user);


    void resetToken2User(String token,User user);


    void  destory(String token);


    void  destory(Long userId, List<String> account);

    User getLoginUserByToken(String token);
}
