ideas-generator/server/models/index.js
DJP ca4ed4976d Add dual-agent system with file upload support and compact UI
- Implement dual-agent architecture supporting both Chat Completions and Responses API
- Add comprehensive file upload functionality for responses agents with image and PDF support
- Integrate OpenAI Conversations API for persistent file context across messages
- Add compact UI design with reduced font sizes and tighter spacing for better chat focus
- Include vector store management, document upload system, and admin dashboard enhancements
- Fix conversation persistence ensuring uploaded files remain accessible in follow-up questions

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 14:45:25 -04:00

48 lines
No EOL
2 KiB
JavaScript

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