namespace Brizco.Core.BaseServices.Abstracts;

public interface IJwtService : IScopedDependency
{
    Task<AccessToken<TUser>> Generate<TUser>(TUser user, Guid complexId,Guid roleId) where TUser : ApplicationUser;
    Task<AccessToken<TUser>> Generate<TUser>(TUser user, Guid complexId) where TUser : ApplicationUser;
    Task<AccessToken<TUser>> Generate<TUser>(TUser user) where TUser : ApplicationUser;

    Task<AccessToken<TUserDto>> Generate<TUserDto, TUser>(TUser user, Guid complexId, Guid roleId) where TUser : ApplicationUser;
    Task<AccessToken<TUserDto>> Generate<TUserDto, TUser>(TUser user, Guid complexId) where TUser : ApplicationUser;
    Task<AccessToken<TUserDto>> Generate<TUserDto, TUser>(TUser user) where TUser : ApplicationUser;
}