add changes

This commit is contained in:
AD2025
2025-12-26 23:56:32 +02:00
parent 410c3d725f
commit e7d26bc981
127 changed files with 36162 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
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',
indexes: [
{
fields: ['quiz_session_id']
},
{
fields: ['question_id']
},
{
fields: ['quiz_session_id', 'question_order']
},
{
unique: true,
fields: ['quiz_session_id', 'question_id']
}
],
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;
};