const { sequelize } = require('../config/database'); const User = require('./User'); const Assistant = require('./Assistant'); const Conversation = require('./Conversation'); const Message = require('./Message'); const VectorStore = require('./VectorStore'); const Document = require('./Document'); const ResponseSession = require('./ResponseSession'); // Existing relationships User.hasMany(Conversation, { foreignKey: 'userId', as: 'conversations' }); Conversation.belongsTo(User, { foreignKey: 'userId', as: 'user' }); Assistant.hasMany(Conversation, { foreignKey: 'assistantId', as: 'conversations' }); Conversation.belongsTo(Assistant, { foreignKey: 'assistantId', as: 'assistant' }); Conversation.hasMany(Message, { foreignKey: 'conversationId', as: 'messages' }); Message.belongsTo(Conversation, { foreignKey: 'conversationId', as: 'conversation' }); // New relationships for dual agent support VectorStore.hasMany(Document, { foreignKey: 'vectorStoreId', as: 'documents' }); Document.belongsTo(VectorStore, { foreignKey: 'vectorStoreId', as: 'vectorStore' }); Assistant.hasMany(Document, { foreignKey: 'assistantId', as: 'documents' }); Document.belongsTo(Assistant, { foreignKey: 'assistantId', as: 'assistant' }); User.hasMany(Document, { foreignKey: 'uploadedByUserId', as: 'uploadedDocuments' }); Document.belongsTo(User, { foreignKey: 'uploadedByUserId', as: 'uploadedBy' }); Conversation.hasMany(ResponseSession, { foreignKey: 'conversationId', as: 'responseSessions' }); ResponseSession.belongsTo(Conversation, { foreignKey: 'conversationId', as: 'conversation' }); Assistant.hasMany(ResponseSession, { foreignKey: 'assistantId', as: 'responseSessions' }); ResponseSession.belongsTo(Assistant, { foreignKey: 'assistantId', as: 'assistant' }); User.hasMany(ResponseSession, { foreignKey: 'userId', as: 'responseSessions' }); ResponseSession.belongsTo(User, { foreignKey: 'userId', as: 'user' }); module.exports = { sequelize, User, Assistant, Conversation, Message, VectorStore, Document, ResponseSession, };