const mongoose = require('mongoose'); const expenseSchema = new mongoose.Schema( { category: { type: String, required: [true, 'Expense must have a category'], enum: [ 'marketing', 'salaries', 'tools', 'hosting', 'shipping', 'packaging', 'rent', 'utilities', 'taxes', 'refunds', 'other', ], trim: true, }, amount: { type: Number, required: [true, 'Expense must have an amount'], min: [0, 'Amount must be positive'], }, date: { type: Date, required: [true, 'Expense must have a date'], default: Date.now, }, notes: { type: String, trim: true, default: '', }, createdBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: [true, 'Expense must be created by a user'], }, }, { timestamps: true, }, ); expenseSchema.index({ date: -1 }); expenseSchema.index({ category: 1 }); expenseSchema.index({ createdAt: -1 }); const Expense = mongoose.model('Expense', expenseSchema); module.exports = Expense;