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'], 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);