Centralized_Reporting_Backend/src/data/models/user.js

32 lines
1.4 KiB
JavaScript

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;