const { DataTypes } = require("sequelize"); const sequelize = require("../../config/db.config"); const CourseAssessment = sequelize.define("CourseAssessment", { assessment_id: { type: DataTypes.BIGINT, primaryKey: true, autoIncrement: true }, uuid: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, unique: true }, course_id: { type: DataTypes.BIGINT, allowNull: false, unique: true }, // one per course title: { type: DataTypes.STRING(255), allowNull: true }, is_required: { type: DataTypes.BOOLEAN, defaultValue: false }, passing_score: { type: DataTypes.INTEGER, defaultValue: 70 }, time_limit_minutes: { type: DataTypes.INTEGER, allowNull: true }, // null = no limit max_questions: { type: DataTypes.INTEGER, allowNull: true }, // null = show all max_attempts: { type: DataTypes.INTEGER, defaultValue: 3 }, // failed attempts before cooldown cooldown_hours: { type: DataTypes.INTEGER, defaultValue: 24 }, // hours locked after hitting max_attempts shuffle_questions: { type: DataTypes.BOOLEAN, defaultValue: false }, createdBy: { type: DataTypes.BIGINT, allowNull: true }, updatedBy: { type: DataTypes.BIGINT, allowNull: true }, deletedBy: { type: DataTypes.BIGINT, allowNull: true }, }, { tableName: "course_assessments", timestamps: true, paranoid: true, }); module.exports = CourseAssessment