user.js 818 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. let randomColor = require('randomcolor')
  2. module.exports = (sequelize, DataTypes) => {
  3. let User = sequelize.define('User', {
  4. username: {
  5. type: DataTypes.STRING,
  6. unique: true
  7. },
  8. description: DataTypes.TEXT,
  9. color: {
  10. type: DataTypes.STRING,
  11. defaultValue () {
  12. return randomColor()
  13. }
  14. },
  15. hash: DataTypes.STRING,
  16. admin: {
  17. type: DataTypes.BOOLEAN,
  18. defaultValue: false
  19. }
  20. }, {
  21. classMethods: {
  22. associate (models) {
  23. User.hasMany(models.Post)
  24. User.hasMany(models.Thread)
  25. },
  26. includeOptions (from, limit) {
  27. let models = sequelize.models
  28. let options = models.Post.includeOptions()
  29. return [{
  30. model: models.Post,
  31. include: options,
  32. limit,
  33. where: { postNumber: { $gte: from } },
  34. order: [['id', 'ASC']]
  35. }]
  36. }
  37. }
  38. })
  39. return User
  40. }