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);
}