package com.ruoyi.security.service;

/**
 * Authentication service interface
 * Handles user authentication and MFA
 */
public interface AuthenticationService {
    
    /**
     * Authenticate user with username and password
     */
    boolean authenticate(String username, String password);
    
    /**
     * Generate MFA token for user
     */
    String generateMfaToken(Long userId, String tokenType);
    
    /**
     * Validate MFA token
     */
    boolean validateMfaToken(Long userId, String token);
    
    /**
     * Check if account is locked
     */
    boolean isAccountLocked(String username);
    
    /**
     * Handle login failure
     */
    void handleLoginFailure(String username, String ipAddress);
    
    /**
     * Clean user data on logout
     */
    void cleanupUserData(Long userId);
}