const { DataTypes } = require('sequelize'); const { sequelize } = require('../config/database'); const Message = sequelize.define('Message', { id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true, }, conversationId: { type: DataTypes.UUID, allowNull: false, references: { model: 'conversations', key: 'id', }, }, role: { type: DataTypes.ENUM('user', 'assistant', 'system'), allowNull: false, }, content: { type: DataTypes.TEXT, allowNull: false, }, metadata: { type: DataTypes.JSONB, defaultValue: {}, }, tokenCount: { type: DataTypes.INTEGER, allowNull: true, }, model: { type: DataTypes.STRING, allowNull: true, }, finishReason: { type: DataTypes.STRING, allowNull: true, }, }, { tableName: 'messages', timestamps: true, indexes: [ { fields: ['conversationId'] }, { fields: ['role'] }, { fields: ['createdAt'] }, { fields: ['conversationId', 'createdAt'] }, ], }); module.exports = Message;