food.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. 'use strict';
  2. import mongoose from 'mongoose'
  3. const Schema = mongoose.Schema;
  4. const foodSchema = new Schema({
  5. rating: {type: Number, default: 0},
  6. is_featured: {type: Number, default: 0},
  7. restaurant_id: {type: Number, isRequired: true},
  8. category_id: {type: Number, isRequired: true},
  9. pinyin_name: {type: String, default: ''},
  10. display_times: {type: Array, default: []},
  11. attrs: {type: Array, default: []},
  12. description: {type: String, default: ""},
  13. month_sales: {type: Number, default: 0},
  14. rating_count: {type: Number, default: 0},
  15. tips: String,
  16. image_path: String,
  17. specifications: [Schema.Types.Mixed],
  18. server_utc: {type: Date, default: Date.now()},
  19. is_essential: {type: Boolean, default: false},
  20. attributes: {type: Array, default: []},
  21. item_id: {type: Number, isRequired: true},
  22. limitation: Schema.Types.Mixed,
  23. name: {type: String, isRequired: true},
  24. satisfy_count: {type: Number, default: 0},
  25. activity: Schema.Types.Mixed,
  26. satisfy_rate: {type: Number, default: 0},
  27. specfoods: [{
  28. original_price: {type: Number, default: 0},
  29. sku_id: {type: Number, isRequired: true},
  30. name: {type: String, isRequired: true},
  31. pinyin_name: {type: String, default: ""},
  32. restaurant_id: {type: Number, isRequired: true},
  33. food_id: {type: Number, isRequired: true},
  34. packing_fee: {type: Number, default: 0},
  35. recent_rating: {type: Number, default: 0},
  36. promotion_stock: {type: Number, default: -1},
  37. price: {type: Number, default: 0},
  38. sold_out: {type: Boolean, default: false},
  39. recent_popularity: {type: Number, default: 0},
  40. is_essential: {type: Boolean, default: false},
  41. item_id: {type: Number, isRequired: true},
  42. checkout_mode: {type: Number, default: 1},
  43. stock: {type: Number, default: 1000},
  44. specs_name: String,
  45. specs: [
  46. {
  47. name: String,
  48. value: String
  49. }
  50. ]
  51. }]
  52. })
  53. foodSchema.index({item_id: 1});
  54. const menuSchema = new Schema({
  55. description: String,
  56. is_selected: {type: Boolean, default: true},
  57. icon_url: {type: String, default: ''},
  58. name: {type: String, isRequired: true},
  59. id: {type: Number, isRequired: true},
  60. restaurant_id: {type: Number, isRequired: true},
  61. type: {type: Number, default: 1},
  62. foods: [foodSchema]
  63. });
  64. menuSchema.index({ id: 1 });
  65. const Food = mongoose.model('Food', foodSchema);
  66. const Menu = mongoose.model('Menu', menuSchema);
  67. export {Food, Menu}