add a lot of changes
This commit is contained in:
58
backend/models/QuizSessionQuestion.js
Normal file
58
backend/models/QuizSessionQuestion.js
Normal file
@@ -0,0 +1,58 @@
|
||||
const { DataTypes } = require('sequelize');
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
|
||||
module.exports = (sequelize) => {
|
||||
const QuizSessionQuestion = sequelize.define('QuizSessionQuestion', {
|
||||
id: {
|
||||
type: DataTypes.CHAR(36),
|
||||
primaryKey: true,
|
||||
allowNull: false
|
||||
},
|
||||
quizSessionId: {
|
||||
type: DataTypes.CHAR(36),
|
||||
allowNull: false,
|
||||
field: 'quiz_session_id'
|
||||
},
|
||||
questionId: {
|
||||
type: DataTypes.CHAR(36),
|
||||
allowNull: false,
|
||||
field: 'question_id'
|
||||
},
|
||||
questionOrder: {
|
||||
type: DataTypes.INTEGER.UNSIGNED,
|
||||
allowNull: false,
|
||||
field: 'question_order',
|
||||
validate: {
|
||||
min: 1
|
||||
}
|
||||
}
|
||||
}, {
|
||||
tableName: 'quiz_session_questions',
|
||||
underscored: true,
|
||||
timestamps: true,
|
||||
createdAt: 'created_at',
|
||||
updatedAt: 'updated_at',
|
||||
hooks: {
|
||||
beforeValidate: (quizSessionQuestion) => {
|
||||
if (!quizSessionQuestion.id) {
|
||||
quizSessionQuestion.id = uuidv4();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Define associations
|
||||
QuizSessionQuestion.associate = (models) => {
|
||||
QuizSessionQuestion.belongsTo(models.QuizSession, {
|
||||
foreignKey: 'quizSessionId',
|
||||
as: 'quizSession'
|
||||
});
|
||||
|
||||
QuizSessionQuestion.belongsTo(models.Question, {
|
||||
foreignKey: 'questionId',
|
||||
as: 'question'
|
||||
});
|
||||
};
|
||||
|
||||
return QuizSessionQuestion;
|
||||
};
|
||||
Reference in New Issue
Block a user