You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
3.3 KiB
140 lines
3.3 KiB
9 months ago
|
const sequelize = require("sequelize");
|
||
|
const db = require("../Config/db");
|
||
|
const bcrypt = require("bcryptjs")
|
||
|
const jwt = require("jsonwebtoken")
|
||
|
|
||
|
const UserModel = db.define(
|
||
|
"TDUSERS",
|
||
|
{
|
||
|
USER_CODE: {
|
||
|
type: sequelize.STRING,
|
||
|
primaryKey: true,
|
||
|
},
|
||
|
USER_NAME: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
USER_PASS: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
USER_DESC: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
USER_CPAS: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
USER_STAT: {
|
||
|
type: sequelize.CHAR,
|
||
|
},
|
||
|
USER_LOG: {
|
||
|
type: sequelize.CHAR,
|
||
|
},
|
||
|
EMAIL: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
MAP: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
USER_PASS: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
USER_STATUS: {
|
||
|
type: sequelize.CHAR, // 1 = Active, 0 = Inactive
|
||
|
},
|
||
|
USER_TYPE: {
|
||
|
type: sequelize.CHAR, // S = Sale , U = User, D = Delivery , C = Customer
|
||
|
},
|
||
|
USER_LOG: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
USER_CPAS: {
|
||
|
type: sequelize.INTEGER,
|
||
|
},
|
||
|
APPROVED: {
|
||
|
type: sequelize.INTEGER,
|
||
|
},
|
||
|
APPROVED_BY: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
EMP_CODE: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
USER_PERIOD: {
|
||
|
type: sequelize.INTEGER,
|
||
|
},
|
||
|
FIELD_0: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
FIELD_1: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
FIELD_2: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
FIELD_3: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
FIELD_4: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
FIELD_5: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
FIELD_6: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
FIELD_7: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
FIELD_8: {
|
||
|
type: sequelize.INTEGER,
|
||
|
},
|
||
|
FIELD_9: {
|
||
|
type: sequelize.DATE,
|
||
|
},
|
||
|
USER_CREATED: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
USER_CREDATE: {
|
||
|
type: sequelize.DATE,
|
||
|
},
|
||
|
USER_UPDT: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
DATE_UPDT: {
|
||
|
type: sequelize.DATE,
|
||
|
},
|
||
|
DEPARTMENT_ID: {
|
||
|
type: sequelize.INTEGER,
|
||
|
},
|
||
|
ROLE_TYPE: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
DEVICE_TOKEN: {
|
||
|
type: sequelize.STRING,
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
timestamps: false,
|
||
|
freezeTableName: true,
|
||
|
}
|
||
|
)
|
||
|
|
||
|
UserModel.removeAttribute("id")
|
||
|
|
||
|
//hashPassword
|
||
|
UserModel.encryptPass = function (pass) {
|
||
|
return bcrypt.hashSync(pass, bcrypt.genSaltSync(10), null)
|
||
|
};
|
||
|
|
||
|
UserModel.prototype.getSignedJwtToken = function (dbCode, appCode, custCode) {
|
||
|
return jwt.sign({ id: this.USER_ID, dbCode: dbCode, appCode: appCode, custCode: custCode }, process.env.JWT_SECRET, {
|
||
|
expiresIn: process.env.JWT_EXPIRE,
|
||
|
})
|
||
|
}
|
||
|
|
||
|
//comparePassword
|
||
|
UserModel.prototype.matchPassword = function (enteredPassword) {
|
||
|
return bcrypt.compareSync(enteredPassword, this.USER_PASS)
|
||
|
};
|
||
|
|
||
|
module.exports = UserModel
|