ajinkya-mhetre-mern
Version:
A MERN starter with frontend and backend folders
61 lines (57 loc) • 1.26 kB
JavaScript
// ===== src/models/Product.js =====
const mongoose = require('mongoose');
const productSchema = new mongoose.Schema({
name: {
type: String,
required: [true, 'Product name is required'],
trim: true
},
description: {
type: String,
required: [true, 'Description is required']
},
category: {
type: String,
enum: ['fruit', 'vegetable'],
required: [true, 'Category is required']
},
price: {
type: Number,
required: [true, 'Price is required'],
min: 0
},
unit: {
type: String,
enum: ['kg', 'gram', 'piece', 'dozen'],
default: 'kg'
},
availableQuantity: {
type: Number,
required: [true, 'Available quantity is required'],
min: 0
},
images: [{
url: String,
public_id: String
}],
farmer: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true
},
isActive: {
type: Boolean,
default: true
},
harvestDate: {
type: Date
},
expiryDate: {
type: Date
}
}, {
timestamps: true
});
productSchema.index({ farmer: 1, category: 1 });
productSchema.index({ name: 'text', description: 'text' });
module.exports = mongoose.model('Product', productSchema);