mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
28 lines
1.1 KiB
JavaScript
28 lines
1.1 KiB
JavaScript
const { DataTypes } = require("sequelize");
|
|
const sequelize = require("../../config/db.config");
|
|
|
|
const QuizQuestion = sequelize.define("QuizQuestion", {
|
|
question_id: { type: DataTypes.BIGINT, primaryKey: true, autoIncrement: true },
|
|
uuid: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, unique: true },
|
|
|
|
// polymorphic: belongs to either unit_quiz OR course_assessment
|
|
quiz_id: { type: DataTypes.BIGINT, allowNull: true }, // → unit_quizzes
|
|
assessment_id: { type: DataTypes.BIGINT, allowNull: true }, // → course_assessments
|
|
|
|
type: {
|
|
type: DataTypes.ENUM("true_false", "multiple_choice", "multi_select"),
|
|
allowNull: false,
|
|
},
|
|
question: { type: DataTypes.TEXT, allowNull: false },
|
|
explanation: { type: DataTypes.TEXT, allowNull: true }, // shown after answer
|
|
order_index: { type: DataTypes.INTEGER, defaultValue: 0 },
|
|
points: { type: DataTypes.INTEGER, defaultValue: 1 },
|
|
createdBy: { type: DataTypes.BIGINT, allowNull: true },
|
|
deletedBy: { type: DataTypes.BIGINT, allowNull: true },
|
|
}, {
|
|
tableName: "quiz_questions",
|
|
timestamps: true,
|
|
paranoid: true,
|
|
});
|
|
|
|
module.exports = QuizQuestion |