const mongoose = require('mongoose') const mongoosePaginate = require('mongoose-paginate-v2') const timestamp = require('mongoose-timestamp') const walletTransactionSchema = new mongoose.Schema({ user: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true, index: true }, bucket: { type: String, enum: ['shop', 'gift', 'charged', 'academy', 'project', 'booking'], required: true, index: true }, /** Only set for bucket:'shop' entries — lets a seller with multiple shops drill into one. */ shop: { type: mongoose.Schema.Types.ObjectId, ref: 'Shop', default: null, index: true }, type: { type: String, enum: ['credit', 'debit'], required: true }, amount: { type: Number, required: true }, referenceType: { type: String, enum: ['order', 'withdrawal', 'payment', null], default: null }, referenceId: { type: mongoose.Schema.Types.ObjectId, default: null }, description: { type: String, trim: true, default: null } }) walletTransactionSchema.plugin(timestamp) walletTransactionSchema.plugin(mongoosePaginate) const WalletTransactionModel = mongoose.model('WalletTransaction', walletTransactionSchema) module.exports = WalletTransactionModel