EventBuzz_Backend/src/models/KnowledgeSource.js

41 lines
1.2 KiB
JavaScript

const mongoose = require('mongoose');
const knowledgeSourceSchema = new mongoose.Schema(
{
eventId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Event',
required: true,
index: true,
},
type: {
type: String,
enum: ['url', 'pdf', 'event', 'food', 'places'],
required: true,
},
sourcePath: { type: String, required: true },
displayName: { type: String, required: true },
status: {
type: String,
enum: ['PENDING', 'PROCESSING', 'READY', 'FAILED'],
default: 'PENDING',
},
errorMessage: { type: String, default: null },
lastSyncedAt: { type: Date, default: Date.now },
/** URL sources: domain-wide or path-prefix crawl */
crawlScope: { type: String, enum: ['domain', 'path'], default: null },
crawlPathPrefix: { type: String, default: null },
lastCrawlStats: {
pages: { type: Number, default: 0 },
assets: { type: Number, default: 0 },
skipped: { type: Number, default: 0 },
failed: { type: Number, default: 0 },
},
},
{ timestamps: true },
);
knowledgeSourceSchema.index({ eventId: 1, type: 1 });
module.exports = mongoose.model('KnowledgeSource', knowledgeSourceSchema);