110 lines
2.5 KiB
JavaScript
110 lines
2.5 KiB
JavaScript
const Sequelize = require('sequelize');
|
||
|
||
/**
|
||
* 聊天会话列表表模型
|
||
* 按 Boss 「好友/会话」列表维度存储,会话摘要信息
|
||
*/
|
||
module.exports = (db) => {
|
||
const chat_records = db.define('chat_records', {
|
||
// 设备与平台
|
||
sn_code: {
|
||
comment: '设备SN码',
|
||
type: Sequelize.STRING(50),
|
||
allowNull: false,
|
||
defaultValue: ''
|
||
},
|
||
platform: {
|
||
comment: '平台: boss-Boss直聘, liepin-猎聘',
|
||
type: Sequelize.STRING(20),
|
||
allowNull: false,
|
||
defaultValue: 'boss'
|
||
},
|
||
|
||
// Boss 会话列表字段(与接口 friend 对象对应)
|
||
friendId: {
|
||
comment: '好友ID',
|
||
type: Sequelize.BIGINT,
|
||
allowNull: false
|
||
},
|
||
friendSource: {
|
||
comment: '好友来源',
|
||
type: Sequelize.INTEGER,
|
||
allowNull: true,
|
||
defaultValue: 0
|
||
},
|
||
encryptFriendId: {
|
||
comment: '好友加密ID',
|
||
type: Sequelize.STRING(100),
|
||
allowNull: false,
|
||
defaultValue: ''
|
||
},
|
||
name: {
|
||
comment: 'HR姓名',
|
||
type: Sequelize.STRING(50),
|
||
allowNull: true,
|
||
defaultValue: ''
|
||
},
|
||
updateTime: {
|
||
comment: '最后更新时间(毫秒时间戳)',
|
||
type: Sequelize.BIGINT,
|
||
allowNull: true
|
||
},
|
||
brandName: {
|
||
comment: '公司名称',
|
||
type: Sequelize.STRING(200),
|
||
allowNull: true,
|
||
defaultValue: ''
|
||
},
|
||
jobName: {
|
||
comment: '职位名称',
|
||
type: Sequelize.STRING(200),
|
||
allowNull: true,
|
||
defaultValue: ''
|
||
},
|
||
jobTypeDesc: {
|
||
comment: '职位类型描述',
|
||
type: Sequelize.STRING(100),
|
||
allowNull: true,
|
||
defaultValue: ''
|
||
},
|
||
jobCity: {
|
||
comment: '职位城市',
|
||
type: Sequelize.STRING(100),
|
||
allowNull: true,
|
||
defaultValue: ''
|
||
},
|
||
positionName: {
|
||
comment: '岗位名称/方向',
|
||
type: Sequelize.STRING(200),
|
||
allowNull: true,
|
||
defaultValue: ''
|
||
},
|
||
bossTitle: {
|
||
comment: 'Boss/HR 职位头衔',
|
||
type: Sequelize.STRING(100),
|
||
allowNull: true,
|
||
defaultValue: ''
|
||
},
|
||
waterLevel: {
|
||
comment: '水位(Boss 优先级标记)',
|
||
type: Sequelize.INTEGER,
|
||
allowNull: true,
|
||
defaultValue: 0
|
||
}
|
||
|
||
}, {
|
||
timestamps: false,
|
||
indexes: [
|
||
{ unique: false, fields: ['sn_code'] },
|
||
{ unique: false, fields: ['platform'] },
|
||
{ unique: false, fields: ['friendId'] },
|
||
{ unique: false, fields: ['encryptFriendId'] }
|
||
]
|
||
});
|
||
|
||
// chat_records.sync({ force: true });
|
||
|
||
return chat_records;
|
||
};
|
||
|