/** * Copyright (c) 2026 Niolla * All rights reserved. * * This source code is proprietary and confidential. * Unauthorized copying, modification, distribution, or use * of this file, via any medium, is strictly prohibited. */ // app/models/User.model.js module.exports = (sequelize, DataTypes) => { const User = sequelize.define( "User", { id: { type: DataTypes.STRING, primaryKey: true, collate: 'utf8mb4_general_ci' }, firstName: { type: DataTypes.STRING, allowNull: false }, lastName: { type: DataTypes.STRING, allowNull: false }, email: { type: DataTypes.STRING, allowNull: false, unique: true }, password: { type: DataTypes.STRING, allowNull: false }, accountType: { type: DataTypes.ENUM("user", "admin", "superadmin", "manager", "business_customer", "rider", "customer","support_agent"), defaultValue: "user" } }, { tableName: "users", timestamps: true } ); User.associate = (db) => { User.hasMany(db.userPermission, { foreignKey: "user_id", as: "userPermissions" }); User.hasOne(db.Profile, { foreignKey: "user_id", as: "profile", }); }; return User; };