KhanhLinh2810 commited on
Commit
14dbfa8
·
1 Parent(s): 342fe87
src/models/choice.py CHANGED
@@ -1,5 +1,5 @@
1
  # models.py
2
- from sqlalchemy import Column, Integer, String, ForeignKey, DateTime, func
3
  from sqlalchemy.orm import relationship
4
  from src.models.base import BaseModel
5
 
@@ -8,7 +8,10 @@ class Choice(BaseModel):
8
 
9
  id = Column(Integer, primary_key=True, index=True)
10
  question_id = Column(Integer, ForeignKey("questions.id"), nullable=False)
11
- choice_text = Column(String(255), nullable=False)
 
 
 
12
  created_at = Column(DateTime(timezone=True), server_default=func.now())
13
  updated_at = Column(DateTime(timezone=True), onupdate=func.now(), server_default=func.now())
14
 
 
1
  # models.py
2
+ from sqlalchemy import Column, Integer, String, ForeignKey, DateTime, func, Boolean
3
  from sqlalchemy.orm import relationship
4
  from src.models.base import BaseModel
5
 
 
8
 
9
  id = Column(Integer, primary_key=True, index=True)
10
  question_id = Column(Integer, ForeignKey("questions.id"), nullable=False)
11
+ context = Column(String(255), nullable=False)
12
+ is_correct = Column(Boolean, nullable=False, default=False)
13
+ explanation = Column(String(255), nullable=True)
14
+
15
  created_at = Column(DateTime(timezone=True), server_default=func.now())
16
  updated_at = Column(DateTime(timezone=True), onupdate=func.now(), server_default=func.now())
17
 
src/models/comment.py CHANGED
@@ -1,5 +1,5 @@
1
  # models.py
2
- from sqlalchemy import Column, Integer, ForeignKey, Text, DateTime, func
3
  from sqlalchemy.orm import relationship
4
  from src.models.base import BaseModel
5
 
@@ -9,7 +9,7 @@ class Comment(BaseModel):
9
  id = Column(Integer, primary_key=True, index=True)
10
  question_id = Column(Integer, ForeignKey("questions.id"), nullable=False)
11
  user_id = Column(Integer, ForeignKey("users.id"), nullable=False)
12
- comment_text = Column(Text, nullable=False)
13
  created_at = Column(DateTime(timezone=True), server_default=func.now())
14
  updated_at = Column(DateTime(timezone=True), onupdate=func.now(), server_default=func.now())
15
 
 
1
  # models.py
2
+ from sqlalchemy import Column, Integer, ForeignKey, Text, DateTime, func, String
3
  from sqlalchemy.orm import relationship
4
  from src.models.base import BaseModel
5
 
 
9
  id = Column(Integer, primary_key=True, index=True)
10
  question_id = Column(Integer, ForeignKey("questions.id"), nullable=False)
11
  user_id = Column(Integer, ForeignKey("users.id"), nullable=False)
12
+ context = Column(String(255), nullable=False)
13
  created_at = Column(DateTime(timezone=True), server_default=func.now())
14
  updated_at = Column(DateTime(timezone=True), onupdate=func.now(), server_default=func.now())
15
 
src/models/exam.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # models.py
2
+ from sqlalchemy import Column, Integer, String, Text, DateTime, func
3
+ from sqlalchemy.orm import relationship
4
+ from src.models.base import BaseModel
5
+
6
+
7
+ class Exam(BaseModel):
8
+ __tablename__ = "users"
9
+
10
+ id = Column(Integer, primary_key=True, index=True)
11
+ user_id = Column(String(50), unique=True, nullable=False, index=True) # belong to user?
12
+ title = Column(String(100), nullable=False) # gửi lên default là exam_username_new_date
13
+ duration = Column(Integer, nullable=False)
14
+ num_question = Column(Integer, nullable=False)
15
+ notes = Column(Text, nullable=False)
16
+
17
+ created_at = Column(DateTime(timezone=True), server_default=func.now())
18
+ updated_at = Column(DateTime(timezone=True), onupdate=func.now(), server_default=func.now())
19
+
20
+ questions = relationship(
21
+ "Question",
22
+ back_populates="user",
23
+ cascade="all, delete",
24
+ passive_deletes=True
25
+ )
src/models/exam_answer.py ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # models.py
2
+ from xmlrpc.client import Boolean
3
+
4
+ from sqlalchemy import Column, Integer, String, Text, DateTime, func
5
+ from sqlalchemy.orm import relationship
6
+ from src.models.base import BaseModel
7
+
8
+
9
+ class ExamAttempt(BaseModel):
10
+ __tablename__ = "users"
11
+
12
+ id = Column(Integer, primary_key=True, index=True)
13
+ question_id = Column(String(50), unique=True, nullable=False, index=True) # nguoi thi
14
+ exam_attempt_id = Column(String(50), unique=True, nullable=False, index=True) # nguoi thi
15
+ is_selected = Column(Boolean, nullable=False, default=False)
16
+ is_correct = Column(Boolean, nullable=False, default=False)
17
+
18
+ questions = relationship(
19
+ "Question",
20
+ back_populates="user",
21
+ cascade="all, delete",
22
+ passive_deletes=True
23
+ )
src/models/exam_attempt.py ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # models.py
2
+ from sqlalchemy import Column, Integer, String, Text, DateTime, func
3
+ from sqlalchemy.orm import relationship
4
+ from src.models.base import BaseModel
5
+
6
+
7
+ class ExamAttempt(BaseModel):
8
+ __tablename__ = "users"
9
+
10
+ id = Column(Integer, primary_key=True, index=True)
11
+ user_id = Column(String(50), unique=True, nullable=False, index=True) # nguoi thi
12
+ exam_id = Column(String(50), unique=True, nullable=False, index=True) # nguoi thi
13
+ started_at = Column(DateTime(timezone=True), server_default=func.now())
14
+ submitted_at = Column(DateTime(timezone=True), server_default=func.now())
15
+ score = Column(Integer, nullable=False)
16
+
17
+ questions = relationship(
18
+ "Question",
19
+ back_populates="user",
20
+ cascade="all, delete",
21
+ passive_deletes=True
22
+ )
src/models/{paragraph.py → exam_question.py} RENAMED
File without changes
src/models/question.py CHANGED
@@ -9,10 +9,8 @@ class Question(BaseModel):
9
 
10
  id = Column(Integer, primary_key=True, index=True)
11
  user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False)
12
- topic = Column(String(100), nullable=False)
13
- context = Column(Text, nullable=False)
14
- question_text = Column(Text, nullable=False)
15
- correct_choice = Column(String(255), nullable=False)
16
  tags = Column(Text, nullable=True)
17
  created_at = Column(DateTime(timezone=True), server_default=func.now())
18
  updated_at = Column(DateTime(timezone=True), onupdate=func.now(), server_default=func.now())
 
9
 
10
  id = Column(Integer, primary_key=True, index=True)
11
  user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False)
12
+ context = Column(Text, nullable=False)
13
+ description = Column(Text, nullable=True) # danh cho cau hoi doan van
 
 
14
  tags = Column(Text, nullable=True)
15
  created_at = Column(DateTime(timezone=True), server_default=func.now())
16
  updated_at = Column(DateTime(timezone=True), onupdate=func.now(), server_default=func.now())