UNPKG

ajinkya-mhetre-mern

Version:

A MERN starter with frontend and backend folders

61 lines (57 loc) 1.26 kB
// ===== 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);