using GermanApp.Application.DTOs; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace GermanApp.Application.Interfaces; /// /// Interface for user progress report services. /// Part of the Application layer. /// public interface IUserReportService { /// /// Generates a progress report for a specific user. /// /// The user ID /// Cancellation token /// User progress report Task GenerateUserReportAsync(int userId, CancellationToken cancellationToken = default); /// /// Generates progress reports for all users. /// /// Cancellation token /// List of all user progress reports Task> GenerateAllUserReportsAsync(CancellationToken cancellationToken = default); /// /// Gets lesson completion data for a user. /// /// The user ID /// Cancellation token /// List of lesson completion data Task> GetUserLessonProgressAsync(int userId, CancellationToken cancellationToken = default); /// /// Gets quiz results for a user. /// /// The user ID /// Cancellation token /// List of quiz results Task> GetUserQuizResultsAsync(int userId, CancellationToken cancellationToken = default); /// /// Exports user reports as CSV. /// /// Cancellation token /// CSV content as string Task ExportReportsAsCsvAsync(CancellationToken cancellationToken = default); }