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; };