exam.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. from sqlalchemy import Column, Integer, String, Text, BigInteger, JSON, SmallInteger
  2. from database import Base
  3. class ExamPaper(Base):
  4. """试卷表 - 对应Go版本的exam_papers"""
  5. __tablename__ = "exam_papers"
  6. id = Column(BigInteger, primary_key=True, autoincrement=True)
  7. exam_name = Column(String(100))
  8. exam_type = Column(String(50))
  9. total_score = Column(Integer)
  10. total_questions = Column(Integer)
  11. generation_method = Column(String(20))
  12. generation_time = Column(String(50))
  13. user_id = Column(BigInteger)
  14. status = Column(SmallInteger, default=1)
  15. created_at = Column(Integer)
  16. updated_at = Column(Integer)
  17. deleted_at = Column(Integer)
  18. class ExamQuestionConfig(Base):
  19. """题型配置表 - 对应Go版本的exam_question_configs"""
  20. __tablename__ = "exam_question_configs"
  21. id = Column(BigInteger, primary_key=True, autoincrement=True)
  22. exam_papers_id = Column(BigInteger)
  23. question_type = Column(String(20))
  24. score_per_question = Column(Integer)
  25. total_score = Column(Integer)
  26. question_count = Column(Integer)
  27. created_at = Column(Integer)
  28. updated_at = Column(Integer)
  29. deleted_at = Column(Integer)
  30. class ExamQuestion(Base):
  31. """题目表 - 对应Go版本的exam_questions"""
  32. __tablename__ = "exam_questions"
  33. id = Column(BigInteger, primary_key=True, autoincrement=True)
  34. exam_papers_id = Column(BigInteger)
  35. question_type = Column(String(20))
  36. question_index = Column(Integer)
  37. question_text = Column(Text)
  38. options = Column(JSON)
  39. correct_answer = Column(String(50))
  40. correct_answers = Column(JSON)
  41. answer_outline = Column(JSON)
  42. created_at = Column(Integer)
  43. updated_at = Column(Integer)
  44. deleted_at = Column(Integer)
  45. class ExamUserAnswer(Base):
  46. """用户答案表 - 对应Go版本的exam_user_answers"""
  47. __tablename__ = "exam_user_answers"
  48. id = Column(BigInteger, primary_key=True, autoincrement=True)
  49. exam_papers_id = Column(BigInteger)
  50. user_id = Column(BigInteger)
  51. exam_questions_id = Column(BigInteger)
  52. user_answer = Column(String(50))
  53. user_answers = Column(JSON)
  54. is_correct = Column(SmallInteger)
  55. created_at = Column(Integer)
  56. updated_at = Column(Integer)
  57. deleted_at = Column(Integer)