Files
starr-philproperties/models/courses/quiz_session.mdl.js
T
kennethobsequio 89acdfc239 push
pushy

Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
2026-06-28 11:29:07 +08:00

21 lines
1.0 KiB
JavaScript

const { DataTypes } = require("sequelize");
const sequelize = require("../../config/db.config");
const QuizSession = sequelize.define("QuizSession", {
session_id: { type: DataTypes.BIGINT, primaryKey: true, autoIncrement: true },
uuid: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, unique: true },
user_id: { type: DataTypes.BIGINT, allowNull: false },
quiz_id: { type: DataTypes.BIGINT, allowNull: false },
course_id: { type: DataTypes.BIGINT, allowNull: true },
unit_id: { type: DataTypes.BIGINT, allowNull: true },
status: { type: DataTypes.STRING(20), allowNull: false, defaultValue: 'in_progress' }, // 'in_progress' | 'submitted'
draft_answers: { type: DataTypes.JSONB, allowNull: true, defaultValue: null },
started_at: { type: DataTypes.DATE, allowNull: false, defaultValue: DataTypes.NOW },
last_saved_at: { type: DataTypes.DATE, allowNull: true, defaultValue: null },
}, {
tableName: "quiz_sessions",
timestamps: true,
});
module.exports = QuizSession;