using Entities.Contracts;
using System;
using System.Collections.Generic;

namespace Entities.DTO
{
    public class StudentSubmissionDetailDto
    {
        // 基本信息
        public Guid Id { get; set; }
        public Guid AssignmentId { get; set; }
        public Guid StudentId { get; set; }
        public DateTime SubmissionTime { get; set; }
        public float OverallGrade { get; set; }
        public string OverallFeedback { get; set; } = string.Empty;
        public SubmissionStatus Status { get; set; }
        
        // Assignment信息
        public ExamDto Assignment { get; set; } = new ExamDto();
        
        // 错误分析
        public Dictionary<string, int> ErrorTypeDistribution { get; set; } = new Dictionary<string, int>();
        public Dictionary<string, float> ErrorTypeScoreDistribution { get; set; } = new Dictionary<string, float>();
        
        // 成绩统计
        public int TotalRank { get; set; }
        public List<float> AllScores { get; set; } = new List<float>();
        public float AverageScore { get; set; }
        public float ClassAverageScore { get; set; }
        
        // 课文分布
        public Dictionary<string, int> LessonErrorDistribution { get; set; } = new Dictionary<string, int>();
        public Dictionary<string, int> KeyPointErrorDistribution { get; set; } = new Dictionary<string, int>();
        
        // 基础统计
        public int TotalQuestions { get; set; }
        public int CorrectCount { get; set; }
        public int ErrorCount { get; set; }
        public float AccuracyRate { get; set; }
    }
}
