51 lines
1.5 KiB
JavaScript
51 lines
1.5 KiB
JavaScript
const mongoose = require('mongoose')
|
|
const mongoosePaginate = require('mongoose-paginate-v2');
|
|
|
|
function image(img) {
|
|
if (img) return '/uploads/images/food/' + img
|
|
}
|
|
|
|
const RateSchema = mongoose.Schema({
|
|
user_id: {type: mongoose.ObjectId, ref: 'User'},
|
|
rate: {
|
|
type: Number,
|
|
enum: [0, 1, 2, 3, 4, 5],
|
|
default: 0
|
|
},
|
|
comment: String,
|
|
order_id : String,
|
|
replay: String,
|
|
replied_by: {type: mongoose.ObjectId, ref: 'User'},
|
|
confirmed: {type: Boolean, default: false},
|
|
confirmed_by: {type: mongoose.ObjectId, ref: 'User'},
|
|
})
|
|
|
|
const FoodSchema = mongoose.Schema({
|
|
branchId: {type: mongoose.ObjectId, ref: 'StoreInfo'},
|
|
club : {type : Boolean , default : false},
|
|
clubQuantity : {type : Number , default : 1},
|
|
point: {type : Number , default : 0},
|
|
sale : {type : Boolean , default : true},
|
|
name: String,
|
|
image: {type: String, get: image},
|
|
price: {type: Number, default: 0},
|
|
special : {type : Boolean , default : false},
|
|
description: String,
|
|
short_description: String,
|
|
estimated_time: Number,
|
|
stock: {type: Number, default: 0},
|
|
category: {type: mongoose.ObjectId, ref: 'FoodCategory'},
|
|
static_discount: {type: Number, default: 0},
|
|
rate: {type: Number, default: 0},
|
|
ratings: [RateSchema],
|
|
index: Number,
|
|
havePoint : {type: Boolean ,default : true},
|
|
canReview : {type :Array , default: []},
|
|
menuType_id: {type: mongoose.ObjectId, ref: 'MenuType'}
|
|
// deleted : {type: Boolean , default : false}
|
|
})
|
|
|
|
FoodSchema.plugin(mongoosePaginate);
|
|
|
|
module.exports = mongoose.model('Food', FoodSchema)
|