1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| const { DataTypes, Model } = require('sequelize'); const sequelize = require('../utils/sequelize');
class Activity extends Model {} Activity.init({ name: { type: DataTypes.STRING(100), allowNull: false, comment: '活动名称' }, start_time: { type: DataTypes.DATE, allowNull: false, comment: '开始时间' }, end_time: { type: DataTypes.DATE, allowNull: false, comment: '结束时间' }, remain_count: { type: DataTypes.INTEGER, defaultValue: 0, comment: '剩余参与次数' }, status: { type: DataTypes.TINYINT, defaultValue: 1, comment: '1-活跃 2-结束' } }, { sequelize, tableName: 'activity', indexes: [ { name: 'idx_activity_time', fields: ['start_time', 'end_time'] }, { name: 'idx_status', fields: ['status'] } ], timestamps: false });
class UserActivity extends Model {} UserActivity.init({ user_id: { type: DataTypes.BIGINT, allowNull: false, comment: '玩家ID' }, activity_id: { type: DataTypes.BIGINT, allowNull: false, comment: '活动ID' }, join_time: { type: DataTypes.DATE, defaultValue: DataTypes.NOW, comment: '参与时间' }, status: { type: DataTypes.TINYINT, defaultValue: 1, comment: '1-成功 2-失败' } }, { sequelize, tableName: 'user_activity', indexes: [ { name: 'uk_user_activity', fields: ['user_id', 'activity_id'], unique: true }, { name: 'idx_activity_join', fields: ['activity_id', 'join_time'] } ], timestamps: false });
UserActivity.belongsTo(Activity, { foreignKey: 'activity_id', targetKey: 'id' });
module.exports = { Activity, UserActivity };
|