namespace Dpz.Core.Service.RepositoryService;
/// <summary>
/// 密码迁移服务接口
/// 用于将旧版本无盐密码迁移到新版本加盐密码
/// </summary>
public interface IPasswordMigrationService
{
/// <summary>
/// 检查用户是否需要密码迁移
/// </summary>
/// <param name="userId">用户ID</param>
/// <returns>是否需要迁移</returns>
Task<bool> NeedsMigrationAsync(string userId);
/// <summary>
/// 为单个用户迁移密码(在用户下次登录时自动执行)
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="plainPassword">用户输入的明文密码</param>
/// <returns>迁移结果</returns>
Task<bool> MigrateUserPasswordAsync(string userId, string plainPassword);
/// <summary>
/// 批量迁移所有旧版本密码用户
/// 注意:此方法只能迁移使用默认密码的用户
/// </summary>
/// <returns>成功迁移的用户数量</returns>
Task<int> BatchMigrateDefaultPasswordUsersAsync();
/// <summary>
/// 获取需要迁移的用户统计信息
/// </summary>
/// <returns>需要迁移的用户数量</returns>
Task<int> GetMigrationPendingCountAsync();
}