Untitled

 avatar
unknown
plain_text
a month ago
2.7 kB
2
Indexable
const mongoose = require('mongoose');

const orderSchema = new mongoose.Schema({
  products: [
    {
      product: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'Product',
        required: true
      },
      isvariant: {
        type: Boolean,
        default: false,
        required: true
      },
      product_variant: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'ProductVariant',
      },
      quantity: {
        type: Number,
        required: true
      },
      product_name: {
        type: String,
        required: true
      },
      price: {
        type: Number,
        required: true
      },
      initialPrice: {
        type: Number,
        required: true
      }
    }
  ],
  ordered_by: {
    type: mongoose.Schema.Types.ObjectId,
  },
  manager: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Manager'
  },
  shipping: {
    method: {
      type: String
      //  required: true
    },
    cost: {
      type: Number
      // required: true
    }
  },
  cart_address: {
    first_name: {
      type: String,
      required: true
    },
    last_name: {
      type: String,
      required: true
    },
    phone: {
      type: String,
      required: true
    },
    city: {
      type: String,
      required: true
    },
    zipCode: {
      type: Number,
      required: true
    },
    address: {
      type: String,
      required: true
    }
  },
  totalPrice: {
    type: Number
    //   required: true
  },
  image: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Image'
  },
  pdf: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Pdf'
  },
  payment_method: {
    type: String,
    enum: ["bank" ,"cash", "both"],
    required: [true, 'payment methode is required']
  },
  status: {
    type: String,
    enum: ['pending', 'processing', 'cancel', 'delivered'],
    default: 'pending'
  },
  isvalid: {
    type: Boolean,
    default: false
  },
  payment_status: {
    type: String,
    enum: ['paid', 'unpaid', 'partial paid'],
    default: 'unpaid'
  },
  payment_value: {
    type: Number
  },
  shipping_company: {
    type: String
  },
  shipping_company_website: {
    type:String
  },
  note: {
    type: String
  },
  note_dipo: {
    type: String
  },
  delivery_estimate: {
    start: {type: Date},
    end: {type: Date} 
  },
  createdAt: {
    type: Date,
    default: Date.now
  },
  updatedAt: {
    type: Date,
    default: Date.now
  }
});

const Order = mongoose.model('Order', orderSchema);

module.exports = Order;
Editor is loading...
Leave a Comment