module.exports = (sequelize, DataTypes) => { const Document = sequelize.define('Document', { id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true }, filename: { type: DataTypes.STRING, allowNull: false }, original_filename: { type: DataTypes.STRING, allowNull: false }, file_path: { type: DataTypes.STRING, allowNull: false }, file_type: { type: DataTypes.STRING, allowNull: false }, file_size: { type: DataTypes.BIGINT, allowNull: false }, content: { type: DataTypes.TEXT, allowNull: true }, extracted_text: { type: DataTypes.TEXT, allowNull: true }, embeddings: { type: DataTypes.JSONB, allowNull: true }, metadata: { type: DataTypes.JSONB, defaultValue: {} }, is_indexed: { type: DataTypes.BOOLEAN, defaultValue: false }, indexing_status: { type: DataTypes.ENUM('pending', 'processing', 'completed', 'failed'), defaultValue: 'pending' }, tags: { type: DataTypes.ARRAY(DataTypes.STRING), defaultValue: [] }, category: { type: DataTypes.STRING, allowNull: true } }, { tableName: 'documents', indexes: [ { fields: ['file_type'] }, { fields: ['is_indexed'] }, { fields: ['indexing_status'] }, { fields: ['category'] }, { fields: ['tags'] }, { fields: ['created_at'] } ] }); return Document; };