Files
2025-11-06 11:08:59 +01:00

61 lines
1.3 KiB
JavaScript

module.exports = (sequelize, DataTypes) => {
const Message = sequelize.define('Message', {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true
},
conversation_id: {
type: DataTypes.UUID,
allowNull: false,
references: {
model: 'conversations',
key: 'id'
}
},
plan_id: {
type: DataTypes.UUID,
allowNull: true,
references: {
model: 'plans',
key: 'id'
}
},
role: {
type: DataTypes.ENUM('user', 'assistant', 'system'),
allowNull: false
},
content: {
type: DataTypes.TEXT,
allowNull: false
},
message_type: {
type: DataTypes.ENUM('text', 'plan', 'execution', 'feedback'),
defaultValue: 'text'
},
metadata: {
type: DataTypes.JSONB,
defaultValue: {}
},
tokens_used: {
type: DataTypes.INTEGER,
defaultValue: 0
},
processing_time: {
type: DataTypes.FLOAT,
defaultValue: 0
}
}, {
tableName: 'messages',
indexes: [
{ fields: ['conversation_id'] },
{ fields: ['plan_id'] },
{ fields: ['role'] },
{ fields: ['message_type'] },
{ fields: ['created_at'] }
]
});
return Message;
};