-
Notifications
You must be signed in to change notification settings - Fork 144
/
Copy pathOrder.js
38 lines (36 loc) · 1.3 KB
/
Order.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import mongoose from 'mongoose';
const orderSchema = new mongoose.Schema(
{
user: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true },
orderItems: [
{
name: { type: String, required: true },
quantity: { type: Number, required: true },
image: { type: String, required: true },
price: { type: Number, required: true },
},
],
shippingAddress: {
fullName: { type: String, required: true },
address: { type: String, required: true },
city: { type: String, required: true },
postalCode: { type: String, required: true },
country: { type: String, required: true },
},
paymentMethod: { type: String, required: true },
paymentResult: { id: String, status: String, email_address: String },
itemsPrice: { type: Number, required: true },
shippingPrice: { type: Number, required: true },
taxPrice: { type: Number, required: true },
totalPrice: { type: Number, required: true },
isPaid: { type: Boolean, required: true, default: false },
isDelivered: { type: Boolean, required: true, default: false },
paidAt: { type: Date },
deliveredAt: { type: Date },
},
{
timestamps: true,
}
);
const Order = mongoose.models.Order || mongoose.model('Order', orderSchema);
export default Order;