package models import ( "gorm.io/datatypes" "time" ) // UserAnswerRecord 用户答题记录 type UserAnswerRecord struct { ID int64 `gorm:"primarykey"` UserID int64 `gorm:"index;not null" json:"user_id"` // 用户ID QuestionID int64 `gorm:"index;not null" json:"question_id"` // 题目ID IsCorrect bool `gorm:"not null" json:"is_correct"` // 是否答对 AnsweredAt time.Time `gorm:"not null" json:"answered_at"` // 答题时间 UserAnswer datatypes.JSON `gorm:"json" json:"user_answer"` // AI 评分相关字段(仅简答题有值) AIScore *float64 `gorm:"type:decimal(5,2)" json:"ai_score,omitempty"` // AI 评分 (0-100) AIFeedback *string `gorm:"type:text" json:"ai_feedback,omitempty"` // AI 评语 AISuggestion *string `gorm:"type:text" json:"ai_suggestion,omitempty"` // AI 改进建议 } // TableName 指定表名 func (UserAnswerRecord) TableName() string { return "user_answer_records" } // UserStatistics 用户统计数据 type UserStatistics struct { TotalQuestions int `json:"total_questions"` // 题库总数 AnsweredQuestions int `json:"answered_questions"` // 已答题数 CorrectAnswers int `json:"correct_answers"` // 答对题数 WrongQuestions int `json:"wrong_questions"` // 错题数量 Accuracy float64 `json:"accuracy"` // 正确率 }