using MotoresArgentinosV2.Core.DTOs; using MotoresArgentinosV2.Core.Entities; namespace MotoresArgentinosV2.Core.Interfaces; public interface IIdentityService { Task<(User? User, string? MigrationMessage)> AuthenticateAsync(string username, string password); Task MigratePasswordAsync(string username, string newPassword); // métodos para registro Task<(bool Success, string Message)> RegisterUserAsync(RegisterRequest request); Task<(bool Success, string Message)> VerifyEmailAsync(string token); Task<(bool Success, string Message)> ResendVerificationEmailAsync(string email); Task<(bool Success, string Message)> ForgotPasswordAsync(string email); Task<(bool Success, string Message)> ResetPasswordAsync(string token, string newPassword); Task<(bool Success, string Message)> ChangePasswordAsync(int userId, string current, string newPwd); // Cambio de Email Seguro Task<(bool Success, string Message)> InitiateEmailChangeAsync(int userId, string newEmail, string mfaCode); Task<(bool Success, string Message)> ConfirmEmailChangeAsync(string token); // Gestión MFA Segura Task<(bool Success, string Message)> InitiateMFADisableAsync(int userId); Task<(bool Success, string Message)> ConfirmMFADisableAsync(int userId, string token); Task<(bool Success, string Message)> InitiateMFAReconfigureAsync(int userId); Task CreateGhostUserAsync(string email, string firstName, string lastName, string phone); }