import mongoose from 'mongoose'; import { generateId } from '../../utils.js'; const marketplaceEventSchema = new mongoose.Schema( { _reference: { type: String, default: () => generateId()() }, marketplace: { type: mongoose.Schema.Types.ObjectId, ref: 'marketplace', required: true }, externalReference: { type: String, required: true }, topic: { type: String, required: true }, status: { type: String, required: true, enum: ['received', 'processed', 'failed'], default: 'received', }, processedAt: { type: Date, required: false }, error: { type: String, required: false }, }, { timestamps: true } ); marketplaceEventSchema.index({ marketplace: 1, externalReference: 1 }, { unique: true }); marketplaceEventSchema.index({ topic: 'text', status: 'text' }); marketplaceEventSchema.virtual('id').get(function () { return this._id; }); marketplaceEventSchema.set('toJSON', { virtuals: true }); export const marketplaceEventModel = mongoose.model('marketplaceEvent', marketplaceEventSchema);