const { DataTypes } = require('sequelize'); module.exports = { up: async (queryInterface, Sequelize) => { await queryInterface.createTable('users', { id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true, allowNull: false }, email: { type: DataTypes.STRING, allowNull: false, unique: true }, password_hash: { type: DataTypes.STRING, allowNull: false }, first_name: { type: DataTypes.STRING, allowNull: false }, last_name: { type: DataTypes.STRING, allowNull: false }, role: { type: DataTypes.ENUM('user', 'admin', 'expert'), defaultValue: 'user', allowNull: false }, is_active: { type: DataTypes.BOOLEAN, defaultValue: true, allowNull: false }, last_login: { type: DataTypes.DATE, allowNull: true }, preferences: { type: DataTypes.JSONB, defaultValue: {}, allowNull: false }, created_at: { type: DataTypes.DATE, allowNull: false, defaultValue: DataTypes.NOW }, updated_at: { type: DataTypes.DATE, allowNull: false, defaultValue: DataTypes.NOW } }); // Create indexes await queryInterface.addIndex('users', ['email']); await queryInterface.addIndex('users', ['role']); await queryInterface.addIndex('users', ['is_active']); await queryInterface.addIndex('users', ['created_at']); }, down: async (queryInterface, Sequelize) => { await queryInterface.dropTable('users'); } };