Files
hamid.zarghami1@gmail.com e644edbd65 transfer project in github
2024-05-12 15:29:27 +03:30

72 lines
1.9 KiB
JavaScript

const mongoose = require('mongoose')
const mongoosePaginate = require('mongoose-paginate-v2');
const StatusSchema = mongoose.Schema({
status: {
type: String,
enum: ['canceled', 'void', 'incomplete', 'processing', 'sent', 'delivered'],
default: 'incomplete'
},
user_id: {type: mongoose.ObjectId, ref: 'User'},
})
const OrderItemsSchema = mongoose.Schema({
product_id: {type: mongoose.ObjectId, ref: 'Food'},
name: String,
quantity: Number,
price: Number,
point : Number,
static_discount: {type: Number, default: 0},
havePoint: Boolean
})
const OrderSchema = mongoose.Schema({
user_id: {type: mongoose.ObjectId, ref: 'User'},
branchId: {type: mongoose.ObjectId, ref: 'StoreInfo'},
rating: {
rate: {
type: Number,
enum: [0, 1, 2, 3, 4, 5],
default: 0
},
reasonForBad: Array
},
description: String,
orderType : {type : String , default : 'online'},
bag: {type: Boolean, default: false},
bagCost: {type: Number, default: 0},
score: {type: Boolean, default: false},
scoreCost: {type: Number, default: 0},
scorePoint: {type: Number, default: 0},
pricePoint: {type: Number, default: 0},
number: Number,
address: {type: Object, default: {}},
statuses: [StatusSchema],
createdOn: Date,
payment: [{type: mongoose.ObjectId, ref: 'Payment' , default:[]}],
paymentStatus: {
type: String,
enum: ['refund', 'unpaid', 'paid'],
default: 'unpaid'
},
status: {
type: String,
enum: ['canceled', 'void', 'incomplete', 'processing', 'sent', 'delivered'],
default: 'incomplete'
},
order_items: [OrderItemsSchema],
discount_code: String,
discount_amount: Number,
discount_menuType: String,
sum: Number,
routePrice: Number,
tax: Number,
percent: Number,
total: Number,
payTotal: Number
})
OrderSchema.plugin(mongoosePaginate);
module.exports = mongoose.model('Order', OrderSchema)