/// Use Case: Générer un rapport
library generate_report;

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

/// Génère un rapport pour un type donné
@injectable
class GenerateReport {
  final IReportsRepository _repository;

  GenerateReport(this._repository);

  /// Exécute le use case
  /// [type] : Type de rapport (membres, cotisations, evenements, etc.)
  /// [format] : Format optionnel (pdf, excel, csv)
  /// Endpoint: POST /api/v1/analytics/reports/generate
  Future<void> call(String type, {String? format}) async {
    return _repository.generateReport(type, format: format);
  }
}
