samoulla-backend / models /expenseModel.js
Samoulla Sync Bot
Auto-deploy Samoulla Backend: 8574a71f0fc617aeb1ce9b5e35dac24c5319a12a
59c49c1
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;