Order Schema
order.js
const orderSchema = new Schema({
_id: Schema.Types.ObjectId,
cusId: { type: Schema.Types.ObjectId, ref: 'User', default: null },
resId: { type: Schema.Types.ObjectId, ref: 'Restaurants', default: null },
driverId: { type: Schema.Types.ObjectId, ref: 'User', default: null },
foods: { type: Array, default: [] },
status: {
type: String,
enum: ['Pending', 'Processing', 'Received', 'Rejected', 'Started', 'Picked', 'Delivered', 'Cancelled', 'Failed', 'Arrived', 'Accepted'],
default: 'Pending'
},
deliveryGpsLoc: { type: [Number], index: '2d' },
deliveryAddress: { type: String, default: null },
resLoc: { type: [Number], index: '2d' },
deliveryRating: {
type: Number,
default: 0
},
resName: { type: String, default: null },
resAddress: { type: String, default: null },
resPhoto: { type: String, default: null },
paymentMethodType: { type: String, enum: ['Card', 'Cash'], default: 'Cash' },
paymentAmount: { type: Number, default: null },
paymentStatus: { type: String, enum: ['Success', 'Failed', 'Processing'], default: 'Processing' },
driverGpsLoc: { type: [Number], index: '2d' },
driverName: { type: String, default: null },
driverMobileNo: { type: Number, default: 0 },
driverPic: { type: String, default: null },
srtipeChargeId: { type: String, default: null },
refundStatus: { type: Boolean, default: false }
}, {
timestamps: true
});