Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | const mongoose = require('mongoose');
const messageSchema = new mongoose.Schema({
role: { type: String, enum: ['user', 'assistant'], required: true },
content: { type: String, required: true },
sources: { type: Array, default: [] },
createdAt: { type: Date, default: Date.now }
}, { _id: false });
const sessionSchema = new mongoose.Schema({
organizationId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Organization',
required: true,
index: true
},
agentId: { type: mongoose.Schema.Types.ObjectId, required: true, index: true },
userId: { type: String, default: 'anonymous', index: true },
messages: { type: [messageSchema], default: [] },
createdAt: { type: Date, default: Date.now },
updatedAt: { type: Date, default: Date.now }
}, {
toJSON: { virtuals: true }
});
sessionSchema.index({ organizationId: 1, agentId: 1, userId: 1, createdAt: -1 });
const Session = mongoose.model('Session', sessionSchema);
module.exports = Session;
|