source: backend/models/orderModel.js@ 55ed171

Last change on this file since 55ed171 was 55ed171, checked in by Nace Gjorgjievski <nace.gorgievski123@…>, 21 months ago

Full Admin Functionality Added

  • Property mode set to 100644
File size: 1.6 KB
Line 
1import mongoose from "mongoose";
2
3const 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
52const Order = mongoose.model("Order", orderSchema);
53export default Order;
Note: See TracBrowser for help on using the repository browser.