Files
autoAiWorkSys/api/model/ai_messages.js
张成 119568f961 1
2025-12-16 06:00:04 +08:00

147 lines
3.1 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const Sequelize = require('sequelize');
/**
* AI消息表模型
* 记录用户与AI的交互消息
*/
module.exports = (db) => {
const ai_messages = db.define("ai_messages", {
// 用户信息
user_id: {
comment: '用户ID',
type: Sequelize.INTEGER,
allowNull: false,
defaultValue: 0
},
nickname: {
comment: '用户昵称',
type: Sequelize.STRING(100),
allowNull: true,
defaultValue: ''
},
// 消息信息
message_type: {
comment: '消息类型: question-提问, feedback-反馈, suggestion-建议',
type: Sequelize.STRING(50),
allowNull: false,
defaultValue: 'question'
},
content: {
comment: '消息内容',
type: Sequelize.TEXT,
allowNull: false,
defaultValue: ''
},
// AI回复信息
ai_response: {
comment: 'AI回复内容',
type: Sequelize.TEXT,
allowNull: true,
defaultValue: ''
},
ai_model: {
comment: 'AI模型名称',
type: Sequelize.STRING(50),
allowNull: true,
defaultValue: ''
},
ai_prompt: {
comment: 'AI提示词',
type: Sequelize.TEXT,
allowNull: true,
defaultValue: ''
},
// 处理状态
status: {
comment: '处理状态: pending-待处理, processing-处理中, completed-已完成, failed-处理失败',
type: Sequelize.STRING(20),
allowNull: false,
defaultValue: 'pending'
},
process_time: {
comment: '处理时间(毫秒)',
type: Sequelize.INTEGER,
allowNull: true,
defaultValue: 0
},
// 关联信息
related_id: {
comment: '关联ID如职位ID、聊天记录ID等',
type: Sequelize.STRING(100),
allowNull: true,
defaultValue: ''
},
related_type: {
comment: '关联类型: job-职位, chat-聊天, resume-简历',
type: Sequelize.STRING(50),
allowNull: true,
defaultValue: ''
},
// 其他信息
error_message: {
comment: '错误信息',
type: Sequelize.TEXT,
allowNull: true,
defaultValue: ''
},
notes: {
comment: '备注',
type: Sequelize.TEXT,
allowNull: true,
defaultValue: ''
},
// 时间戳
create_time: {
comment: '创建时间',
type: Sequelize.DATE,
allowNull: false,
defaultValue: Sequelize.NOW
},
update_time: {
comment: '更新时间',
type: Sequelize.DATE,
allowNull: false,
defaultValue: Sequelize.NOW
},
is_delete: {
comment: '是否删除',
type: Sequelize.BOOLEAN,
allowNull: false,
defaultValue: false
}
}, {
timestamps: false,
indexes: [
{
unique: false,
fields: ['user_id']
},
{
unique: false,
fields: ['message_type']
},
{
unique: false,
fields: ['status']
},
{
unique: false,
fields: ['create_time']
},
{
unique: false,
fields: ['is_delete']
}
]
});
return ai_messages;
};