1 | import mongoose from "mongoose";
|
---|
2 |
|
---|
3 | const orderSchema = new mongoose.Schema(
|
---|
4 | {
|
---|
5 | orderItems: [
|
---|
6 | {
|
---|
7 | slug: { type: String, required: true },
|
---|
8 | name: { type: String, required: true },
|
---|
9 | quantity: { type: Number, required: true },
|
---|
10 | image: { type: String, required: true },
|
---|
11 | price: { type: Number, required: true },
|
---|
12 | product: {
|
---|
13 | type: mongoose.Schema.Types.ObjectId,
|
---|
14 | ref: "Product",
|
---|
15 | required: true,
|
---|
16 | },
|
---|
17 | },
|
---|
18 | ],
|
---|
19 | shippingAddress: {
|
---|
20 | fullName: { type: String, required: true },
|
---|
21 | address: { type: String, required: true },
|
---|
22 | city: { type: String, required: true },
|
---|
23 | postalCode: { type: String, required: true },
|
---|
24 | country: { type: String, required: true },
|
---|
25 | },
|
---|
26 | paymentMethod: { type: String, required: true },
|
---|
27 | paymentResult: {
|
---|
28 | id: String,
|
---|
29 | status: String,
|
---|
30 | update_time: String,
|
---|
31 | email_address: String,
|
---|
32 | },
|
---|
33 | itemsPrice: { type: Number, required: true },
|
---|
34 | shippingPrice: { type: Number, required: true },
|
---|
35 | totalPrice: { type: Number, required: true },
|
---|
36 | user: { type: mongoose.Schema.Types.ObjectId, ref: "User", required: true },
|
---|
37 | isConfirmed: { type: Boolean, default: false },
|
---|
38 | isPaid: { type: Boolean, default: false },
|
---|
39 | contactNumber: { type: String },
|
---|
40 | paidAt: { type: Date },
|
---|
41 | paidAtFormat: { type: String },
|
---|
42 | shippedAt: { type: Date },
|
---|
43 | isShipped: { type: Boolean, default: false },
|
---|
44 | isDelivered: { type: Boolean, default: false },
|
---|
45 | deliveredAt: { type: Date },
|
---|
46 | },
|
---|
47 | {
|
---|
48 | timestamps: true,
|
---|
49 | }
|
---|
50 | );
|
---|
51 |
|
---|
52 | const Order = mongoose.model("Order", orderSchema);
|
---|
53 | export default Order;
|
---|