user.js 820 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const mongoose = require('mongoose');
  2. const { Schema, model } = mongoose;
  3. const gravatar = require('gravatar');
  4. mongoose.Types.ObjectId.isValid();
  5. const userSchema = new Schema(
  6. {
  7. name: {
  8. type: String,
  9. default: null,
  10. },
  11. lastName: {
  12. type: String,
  13. default: null,
  14. },
  15. number: {
  16. type: String,
  17. required: [true, 'Number required'],
  18. unique: true,
  19. min: 8,
  20. max: 14,
  21. },
  22. country: {
  23. type: String,
  24. required: [true, 'Country required'],
  25. min: 1,
  26. max: 40,
  27. },
  28. avatarUrl: {
  29. type: String,
  30. default: function () {
  31. return gravatar.url(this.email, { s: '250' }, true);
  32. },
  33. },
  34. token: {
  35. type: String,
  36. default: null,
  37. },
  38. code: {
  39. type: String,
  40. default: null,
  41. },
  42. },
  43. { timestamps: true }
  44. );
  45. const User = model('user', userSchema);
  46. module.exports = User;