/// Use Case: Mettre à jour les préférences utilisateur
library update_preferences;

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

/// Met à jour les préférences utilisateur (langue, notifications, thème, etc.)
/// Endpoint: PUT /api/membres/{id}/preferences
/// Fallback sur stockage local si endpoint non disponible
@injectable
class UpdatePreferences {
  final IProfileRepository _repository;

  UpdatePreferences(this._repository);

  /// Exécute le use case
  /// [id] : Identifiant du membre
  /// [preferences] : Map contenant les préférences à mettre à jour
  /// Exemple: { "langue": "fr", "notificationsEmail": true, "theme": "dark" }
  /// Retourne les préférences mises à jour
  Future<Map<String, dynamic>> call(String id, Map<String, dynamic> preferences) async {
    return _repository.updatePreferences(id, preferences);
  }
}
