%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/opti/workflow/src/models/
Upload File :
Create Path :
Current File : /home/opti/workflow/src/models/user.js

'use strict';

module.exports = (sequelize, DataTypes) => {
  const User = sequelize.define('User', {
    firstName: DataTypes.STRING,
    middleName: DataTypes.STRING,
    lastName: DataTypes.STRING,
    avatar: DataTypes.STRING,
    gradeId: DataTypes.INTEGER,
    branchId: DataTypes.INTEGER,
    companyStructureId: DataTypes.INTEGER,
    email: DataTypes.STRING,
    phone: DataTypes.STRING,
    password: DataTypes.STRING,
    orgId: DataTypes.INTEGER,
    roleId: DataTypes.ENUM('isSuperAdmin', 'isAdmin' , 'isEmployee'),
    userRoleId: DataTypes.INTEGER,
    image: DataTypes.STRING,
    dob: DataTypes.DATE,
    gender: DataTypes.ENUM('male', 'female'),
    organisationStructureId: DataTypes.INTEGER,
    companyStructureId: DataTypes.INTEGER

  }, {});
  User.associate = function(models) {
    // associations can be defined here
    User.belongsTo(models.PayGrade, {foreignKey: 'gradeId', as: 'grade'});
    User.belongsTo(models.Branch, {foreignKey: 'branchId', as: 'branch'});
    User.belongsTo(models.CompanyStructure, {foreignKey: 'companyStructureId', as: 'companyStructure'});
    User.belongsTo(models.UserRole, { foreignKey: 'userRoleId', as: 'userRole'});

    User.hasOne(models.EmployeeJob, {foreignKey: 'userId', as : 'employeeJob'})
    // User.hasMany(models.EmployeeJob, {foreignKey:userId, as : 'employeeJobs'})
    User.hasOne(models.EmployeeSalary, {foreignKey: 'userId', as : 'salary'})
    User.hasMany(models.EmployeeSalary, {foreignKey: 'userId', as : 'salaryHistories'})
    // User.hasOne(models.EmployeeSalaryComponent, {foreignKey: 'userId', as : 'salaryComponent'})

  };


  return User;
};

Zerion Mini Shell 1.0