using Dpz.Core.Public.ViewModel.Request;
using Dpz.Core.Public.ViewModel.Response;

namespace Dpz.Core.Service.RepositoryService;

public interface IAccountSessionService
{
    Task CreateOrRefreshAsync(
        VmUserInfo user,
        LoginMethod method = LoginMethod.Password,
        CancellationToken cancellationToken = default
    );

    Task<bool> IsRevokedAsync(string sessionId, CancellationToken cancellationToken = default);

    Task TouchAsync(string sessionId, CancellationToken cancellationToken = default);

    Task UpdateMethodAsync(
        string sessionId,
        LoginMethod method,
        CancellationToken cancellationToken = default
    );

    Task<bool> RevokeAsync(
        string account,
        string sessionId,
        CancellationToken cancellationToken = default
    );

    Task<IPagedList<AccountSessionResponse>> GetPageAsync(
        AccountSessionRequest request,
        CancellationToken cancellationToken = default
    );
}
评论加载中...