/// Use Case: Programmer un rapport automatique
library schedule_report;

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

/// Programme un rapport pour génération automatique récurrente
@injectable
class ScheduleReport {
  final IReportsRepository _repository;

  ScheduleReport(this._repository);

  /// Exécute le use case
  /// [cronExpression] : Expression cron optionnelle pour la récurrence
  /// Exemples: "0 0 1 * *" (1er de chaque mois à minuit)
  ///           "0 9 * * 1" (tous les lundis à 9h)
  /// Endpoint: POST /api/v1/analytics/reports/schedule
  Future<void> call({String? cronExpression}) async {
    return _repository.scheduleReport(cronExpression: cronExpression);
  }
}
