namespace GermanApp.Application.DTOs;
///
/// DTO for admin user information.
///
public record AdminUserDto(
int Id,
string Username,
string Email,
string Role,
string CurrentLevel,
int Streak,
int TotalPoints,
DateTime CreatedAt);
///
/// DTO for user progress report.
///
public record UserProgressReportDto(
int UserId,
string Username,
string Email,
string CurrentLevel,
int TotalLessonsCompleted,
int TotalQuizzesCompleted,
double AverageQuizScore,
int TotalPoints,
int CurrentStreak,
DateTime LastActivityDate);
///
/// DTO for lesson completion status.
///
public record LessonCompletionDto(
int LessonId,
string LessonTitle,
string LevelCode,
bool IsCompleted,
DateTime? CompletedAt);
///
/// DTO for user quiz result (for admin reports).
///
public record UserQuizResultDto(
int QuizId,
string QuizTitle,
int Score,
int PassingScore,
bool Passed,
DateTime AttemptDate);
///
/// DTO for creating a new story via admin.
///
public record AdminCreateStoryDto(
int LevelId,
string Theme,
int SegmentCount = 3,
bool GenerateAudio = false);
///
/// DTO for admin dashboard statistics.
///
public record AdminDashboardStatsDto(
int TotalUsers,
int TotalLessons,
int TotalQuizzes,
int TotalStorySegments,
int ActiveUsersThisWeek,
double AverageUserProgress);
///
/// DTO for user list item (for admin user management).
///
public record AdminUserListItemDto(
int Id,
string Username,
string Email,
string Role,
string CurrentLevel,
int TotalPoints,
int Streak,
DateTime CreatedAt);
///
/// DTO for updating user role (admin only).
///
public record UpdateUserRoleDto(
string Role);