user.js 787 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. color: {
  9. type: DataTypes.STRING,
  10. defaultValue () {
  11. return randomColor()
  12. }
  13. },
  14. hash: DataTypes.STRING,
  15. admin: {
  16. type: DataTypes.BOOLEAN,
  17. defaultValue: false
  18. }
  19. }, {
  20. classMethods: {
  21. associate (models) {
  22. User.hasMany(models.Post)
  23. User.hasMany(models.Thread)
  24. },
  25. includeOptions (from, limit) {
  26. let models = sequelize.models
  27. let options = models.Post.includeOptions()
  28. return [{
  29. model: models.Post,
  30. include: options,
  31. limit,
  32. where: { postNumber: { $gte: from } },
  33. order: [['id', 'ASC']]
  34. }]
  35. }
  36. }
  37. })
  38. return User
  39. }