124 lines
2.7 KiB
JavaScript
124 lines
2.7 KiB
JavaScript
/**
|
||
* 邀请记录表模型
|
||
* 记录用户邀请注册的信息
|
||
*/
|
||
|
||
const Sequelize = require('sequelize');
|
||
|
||
module.exports = (db) => {
|
||
const invite_record = db.define("invite_record", {
|
||
// 邀请人ID(关联 pla_account.id)
|
||
inviter_id: {
|
||
comment: '邀请人ID',
|
||
type: Sequelize.INTEGER,
|
||
allowNull: false,
|
||
references: {
|
||
model: 'pla_account',
|
||
key: 'id'
|
||
}
|
||
},
|
||
// 邀请人SN码
|
||
inviter_sn_code: {
|
||
comment: '邀请人SN码',
|
||
type: Sequelize.STRING(50),
|
||
allowNull: false,
|
||
defaultValue: ''
|
||
},
|
||
// 被邀请人ID(关联 pla_account.id)
|
||
invitee_id: {
|
||
comment: '被邀请人ID',
|
||
type: Sequelize.INTEGER,
|
||
allowNull: false,
|
||
references: {
|
||
model: 'pla_account',
|
||
key: 'id'
|
||
}
|
||
},
|
||
// 被邀请人SN码
|
||
invitee_sn_code: {
|
||
comment: '被邀请人SN码',
|
||
type: Sequelize.STRING(50),
|
||
allowNull: false,
|
||
defaultValue: ''
|
||
},
|
||
// 被邀请人手机号
|
||
invitee_phone: {
|
||
comment: '被邀请人手机号',
|
||
type: Sequelize.STRING(20),
|
||
allowNull: false,
|
||
defaultValue: ''
|
||
},
|
||
// 邀请码
|
||
invite_code: {
|
||
comment: '邀请码',
|
||
type: Sequelize.STRING(100),
|
||
allowNull: false,
|
||
defaultValue: ''
|
||
},
|
||
// 注册时间
|
||
register_time: {
|
||
comment: '注册时间',
|
||
type: Sequelize.DATE,
|
||
allowNull: false,
|
||
defaultValue: Sequelize.NOW
|
||
},
|
||
// 奖励状态(0=未发放,1=已发放)
|
||
reward_status: {
|
||
comment: '奖励状态(0=未发放,1=已发放)',
|
||
type: Sequelize.TINYINT(1),
|
||
allowNull: false,
|
||
defaultValue: 0
|
||
},
|
||
// 奖励类型(trial_days=试用期天数)
|
||
reward_type: {
|
||
comment: '奖励类型',
|
||
type: Sequelize.STRING(50),
|
||
allowNull: false,
|
||
defaultValue: 'trial_days'
|
||
},
|
||
// 奖励值(试用期天数)
|
||
reward_value: {
|
||
comment: '奖励值(试用期天数)',
|
||
type: Sequelize.INTEGER,
|
||
allowNull: false,
|
||
defaultValue: 3
|
||
},
|
||
|
||
// 备注
|
||
remark: {
|
||
comment: '备注',
|
||
type: Sequelize.TEXT,
|
||
allowNull: true
|
||
}
|
||
}, {
|
||
tableName: 'invite_record',
|
||
indexes: [
|
||
{
|
||
name: 'idx_inviter_id',
|
||
fields: ['inviter_id']
|
||
},
|
||
{
|
||
name: 'idx_invitee_id',
|
||
fields: ['invitee_id']
|
||
},
|
||
{
|
||
name: 'idx_invite_code',
|
||
fields: ['invite_code']
|
||
},
|
||
{
|
||
name: 'idx_register_time',
|
||
fields: ['register_time']
|
||
},
|
||
{
|
||
name: 'idx_reward_status',
|
||
fields: ['reward_status']
|
||
}
|
||
]
|
||
});
|
||
|
||
// invite_record.sync({ alter: true });
|
||
|
||
return invite_record;
|
||
};
|
||
|