staff-member.js 1019 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. const Sequelize = require('sequelize')
  2. const sequelize = require('./sequelize')
  3. const StaffMember = sequelize.define('staffMember', {
  4. id: {
  5. type: Sequelize.UUID,
  6. defaultValue: Sequelize.UUIDV1,
  7. primaryKey: true
  8. },
  9. staffingAgencyId: Sequelize.UUID,
  10. laborCategoryId: Sequelize.UUID,
  11. name: Sequelize.STRING,
  12. title: Sequelize.STRING,
  13. identifier: Sequelize.STRING,
  14. terminalId: Sequelize.UUID,
  15. wage: Sequelize.DECIMAL(19, 4),
  16. salary: Sequelize.DECIMAL(19, 4)
  17. }, {
  18. paranoid: true,
  19. indexes: [
  20. {
  21. unique: true,
  22. fields: ['staffingAgencyId', 'identifier']
  23. }
  24. ]
  25. })
  26. StaffMember.prototype.sanitize = async function(req) {
  27. const record = this.toJSON()
  28. const LaborCategory = sequelize.models.laborCategory
  29. if (this.laborCategoryId) {
  30. const {key} = await LaborCategory.findOne({where: {id: this.laborCategoryId}})
  31. if (!req.claims[`INCOME_${key}_VIEW`]) {
  32. delete record.wage
  33. delete record.salary
  34. }
  35. }
  36. return record
  37. }
  38. module.exports = StaffMember