const { DataTypes } = require('sequelize'); const { sequelize } = require('../config/database'); const VectorStore = sequelize.define('VectorStore', { id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true, }, openaiVectorStoreId: { type: DataTypes.STRING, allowNull: false, unique: true, comment: 'OpenAI vector store ID from their API' }, name: { type: DataTypes.STRING, allowNull: false, }, description: { type: DataTypes.TEXT, allowNull: true, }, fileCount: { type: DataTypes.INTEGER, defaultValue: 0, allowNull: false, }, bytesUsed: { type: DataTypes.BIGINT, defaultValue: 0, allowNull: false, }, status: { type: DataTypes.ENUM('in_progress', 'completed', 'failed', 'cancelled'), defaultValue: 'in_progress', allowNull: false, }, expiresAfter: { type: DataTypes.JSONB, allowNull: true, comment: 'Expiration configuration object' }, lastActiveAt: { type: DataTypes.DATE, allowNull: true, }, metadata: { type: DataTypes.JSONB, defaultValue: {}, }, }, { tableName: 'vector_stores', timestamps: true, indexes: [ { fields: ['openaiVectorStoreId'], unique: true }, { fields: ['status'] }, { fields: ['createdAt'] }, ], }); module.exports = VectorStore;