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; };