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
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 |