export interface StudentProgress {
  totalVerses: number;
  completedVerses: number;
  needRevisionVerses: number;
  inProgressVerses: number;
  completionPercentage: number;
  currentLevel: number;
  currentStreak: number;
  longestStreak: number;
  totalSubmissions: number;
  averageScore: number;
}

export interface WeeklyActivity {
  day: string;
  submissions: number;
  approved: number;
}

export interface MonthlyProgress {
  month: string;
  completed: number;
  total: number;
}

export interface ChapterProgress {
  chapterId: string;
  chapterName: string;
  totalVerses: number;
  completedVerses: number;
  percentage: number;
}

export interface Achievement {
  id: string;
  name: string;
  description: string;
  icon: string;
  earnedAt?: string;
  isEarned: boolean;
}

export interface Badge {
  id: string;
  name: string;
  description: string;
  icon: string;
  color: string;
  requirement: string;
  isEarned: boolean;
}

export interface LeaderboardEntry {
  rank: number;
  studentId: string;
  studentName: string;
  studentAvatar?: string;
  completedVerses: number;
  averageScore: number;
  currentStreak: number;
}

export interface MurojaahSession {
  id: string;
  verseId: string;
  verse?: import('./verse').Verse;
  timeLimit: number;
  startedAt: string;
  completedAt?: string;
  score?: number;
}

export interface DashboardStats {
  greeting: string;
  todayTarget: number;
  todayCompleted: number;
  currentStreak: number;
  totalCompleted: number;
  needRevision: number;
  recentActivities: RecentActivity[];
  leaderboardPreview: LeaderboardEntry[];
  badges: Badge[];
}

export interface RecentActivity {
  id: string;
  type: 'submission' | 'approval' | 'badge' | 'streak';
  title: string;
  description: string;
  timestamp: string;
  icon?: string;
}
