class AdminModel(db.Model): __tablename__ = "admin" id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String, nullable=False, unique=True) password = db.Column(db.String, nullable=False) name = db.Column(db.String, nullable=False)
class StudentModel(db.Model): __tablename__ = "student" id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String, nullable=False, unique=True) password = db.Column(db.String, nullable=False) student_number = db.Column(db.String(4), nullable=False, unique=True) name = db.Column(db.String, nullable=False)
class TeamModel(db.Model): __tablename__ = "team" id = db.Column(db.Integer, primary_key=True) leader_id = db.Column(db.Integer, db.ForeignKey("student.id")) assignment_id = db.Column(db.Integer, db.ForeignKey("homework.id")) name = db.Column(db.String) members = db.relationship("MemberModel")
class AssignmentModel(db.Model): __tablename__ = "assignment" id = db.Column(db.Integer, primary_key=True) deadline_1 = db.Column(db.DateTime, nullable=False) deadline_2 = db.Column(db.DateTime, nullable=False) deadline_3 = db.Column(db.DateTime, nullable=False) deadline_4 = db.Column(db.DateTime, nullable=False) title = db.Column(db.String, nullable=False) description = db.Column(db.String) type = db.Column(db.Enum("PERSONAL", "TEAM", "EXPERIMENT"), nullable=False) created_at = db.Column(db.DateTime, nullable=False) view = db.Column(db.Integer)
class ExperimentFileModel(db.Model): __tablename__ = "experiment_file" id = db.Column(db.Integer, primary_key=True) student_id = db.Column(db.Integer, db.ForeignKey("student.id")) assignment_id = db.Column(db.Integer, db.ForeignKey("homework.id")) team_id = db.Column(db.Integer, db.ForeignKey("team.id")) file_name = db.Column(db.String, nullable=False) path = db.Column(db.String, nullable=False) created_at = db.Column(db.DateTime, nullable=False) is_late = db.Column(db.Boolean, nullable=False) student = db.relationship("StudentModel")
class SelfEvaluationModel(db.Model): __tablename__ = "self_evaluation" id = db.Column(db.Integer, primary_key=True) student_id = db.Column(db.Integer, db.ForeignKey("student.id")) assignment_id = db.Column(db.Integer, db.ForeignKey("homework.id")) scientific_accuracy = db.Column(db.Integer, nullable=False) communication = db.Column(db.Integer, nullable=False) attitude = db.Column(db.Integer, nullable=False) created_at = db.Column(db.DateTime, nullable=False)
class TeamFileModel(db.Model): __tablename__ = "team_file" id = db.Column(db.Integer, primary_key=True) assignment_id = db.Column(db.Integer, db.ForeignKey("homework.id")) team_id = db.Column(db.Integer, db.ForeignKey("team.id")) file_name = db.Column(db.String, nullable=False) path = db.Column(db.String, nullable=False, unique=True) created_at = db.Column(db.DateTime, nullable=False) is_late = db.Column(db.Boolean, nullable=False)
class MutualEvaluationModel(db.Model): __tablename__ = "mutual_evaluation" id = db.Column(db.Integer, primary_key=True) student_id = db.Column(db.Integer, db.ForeignKey("student.id")) assignment_id = db.Column(db.Integer, db.ForeignKey("homework.id")) target_id = db.Column(db.Integer, db.ForeignKey("student.id")) communication = db.Column(db.Integer, nullable=False) cooperation = db.Column(db.Integer, nullable=False) created_at = db.Column(db.DateTime, nullable=False)
class MemberModel(db.Model): __tablename__ = "member" id = db.Column(db.Integer, primary_key=True) team_id = db.Column(db.Integer, db.ForeignKey("team.id")) student_id = db.Column(db.Integer, db.ForeignKey("student.id"))