using GermanApp.Application.DTOs.Auth; using GermanApp.Domain.Entities; namespace GermanApp.Application.Interfaces; /// /// Interface for authentication services. /// Part of the Application layer. /// public interface IAuthService { /// /// Registers a new user. /// /// User registration data /// Authentication response with token Task RegisterAsync(RegisterDto registerDto); /// /// Authenticates a user and returns a JWT token. /// /// User login data /// Authentication response with token Task LoginAsync(LoginDto loginDto); /// /// Gets the current authenticated user. /// /// User ID from token claims /// The user entity Task GetCurrentUserAsync(int userId); /// /// Refreshes the access token using a refresh token. /// /// The refresh token /// New access token and refresh token Task RefreshTokenAsync(string refreshToken); /// /// Revokes a refresh token. /// /// The refresh token to revoke Task RevokeRefreshTokenAsync(string refreshToken); }