module.exports = (sequelize, DataTypes) => { const User = sequelize.define('User', { id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true }, email: { type: DataTypes.STRING, allowNull: false, unique: true, validate: { isEmail: 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' }, is_active: { type: DataTypes.BOOLEAN, defaultValue: true }, last_login: { type: DataTypes.DATE }, preferences: { type: DataTypes.JSONB, defaultValue: {} } }, { tableName: 'users', indexes: [ { fields: ['email'] }, { fields: ['role'] }, { fields: ['is_active'] } ] }); return User; };