/// Use Case: Récupérer les rapports disponibles
library get_reports;

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

/// Récupère la liste des rapports disponibles (types générables)
@injectable
class GetReports {
  final IReportsRepository _repository;

  GetReports(this._repository);

  /// Exécute le use case
  /// Retourne une liste de rapports disponibles avec leurs métadonnées
  /// Exemple: [{ "type": "membres", "nom": "Rapport Membres", "description": "..." }]
  /// Endpoint: GET /api/v1/analytics/reports/available
  Future<List<Map<String, dynamic>>> call() async {
    return _repository.getAvailableReports();
  }
}
