Files
competition-website/app/model/choiceQuestion.js

67 lines
1.5 KiB
JavaScript
Raw Permalink Normal View History

'use strict';
/**
* 选择题模型 - ChoiceQuestion
*
* 对应 choice_questions 表,存储所有组别的选择题(单选 + 多选)。
* 通过 group 字段区分中职组(zhongzhi)和高职组(gaozhi)。
*/
module.exports = app => {
const { STRING, INTEGER, DATE, JSON: JSON_TYPE, TEXT } = app.Sequelize;
return app.model.define('ChoiceQuestion', {
id: {
type: INTEGER,
primaryKey: true,
autoIncrement: true,
comment: '主键ID',
},
group: {
type: STRING(20),
allowNull: false,
comment: '组别:zhongzhi/gaozhi',
},
question: {
type: TEXT,
allowNull: false,
comment: '题目内容',
},
options: {
type: JSON_TYPE,
allowNull: false,
comment: '选项列表 [{ key: "A", text: "..." }, ...]',
},
answer: {
type: STRING(10),
allowNull: false,
comment: '正确答案(如 A / AB / ABCD)',
},
score: {
type: INTEGER,
allowNull: false,
defaultValue: 5,
comment: '分值',
},
sort_order: {
type: INTEGER,
allowNull: false,
defaultValue: 0,
comment: '排序',
},
created_at: {
type: DATE,
defaultValue: app.Sequelize.NOW,
comment: '创建时间',
},
updated_at: {
type: DATE,
defaultValue: app.Sequelize.NOW,
comment: '更新时间',
},
}, {
tableName: 'choice_questions',
timestamps: true,
createdAt: 'created_at',
updatedAt: 'updated_at',
});
};