'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', }); };