/// Use Case: Changer le mot de passe
library change_password;

import 'package:injectable/injectable.dart';
import '../repositories/profile_repository.dart';

/// Change le mot de passe de l'utilisateur via Keycloak
/// Endpoint: POST /api/auth/change-password
@injectable
class ChangePassword {
  final IProfileRepository _repository;

  ChangePassword(this._repository);

  /// Exécute le use case
  /// [id] : Identifiant du membre
  /// [oldPassword] : Ancien mot de passe (validation)
  /// [newPassword] : Nouveau mot de passe
  /// Lève une exception si l'ancien mot de passe est incorrect
  Future<void> call(String id, String oldPassword, String newPassword) async {
    return _repository.changePassword(id, oldPassword, newPassword);
  }
}
