const { DataTypes, Model } = require('sequelize'); const sequelize = require('../../db/pool'); class User extends Model {} User.init( { id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true }, uuid: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, allowNull: false, unique: true }, email: { type: DataTypes.STRING(255), allowNull: false, unique: true, validate: { isEmail: true } }, passwordHash: { field: 'password_hash', type: DataTypes.STRING(255), allowNull: false }, firstName: { field: 'first_name', type: DataTypes.STRING(100), allowNull: true }, lastName: { field: 'last_name', type: DataTypes.STRING(100), allowNull: true }, profilePicture: { field: 'profile_picture', type: DataTypes.STRING(512), allowNull: true }, role: { type: DataTypes.ENUM('admin', 'manager', 'user'), defaultValue: 'user', allowNull: false }, isActive: { field: 'is_active', type: DataTypes.BOOLEAN, defaultValue: true }, createdAt: { field: 'created_at', type: DataTypes.DATE, allowNull: false, defaultValue: DataTypes.NOW }, updatedAt: { field: 'updated_at', type: DataTypes.DATE, allowNull: false, defaultValue: DataTypes.NOW }, deletedAt: { field: 'deleted_at', type: DataTypes.DATE, allowNull: true } }, { sequelize, modelName: 'User', tableName: 'users', paranoid: true, timestamps: true } ); module.exports = User;