Files
multy-stub/server/routers/procurement/models/Activity.js
2025-11-04 22:39:29 +03:00

62 lines
1.1 KiB
JavaScript

const mongoose = require('mongoose');
const activitySchema = new mongoose.Schema({
companyId: {
type: String,
required: true,
index: true
},
userId: {
type: String,
required: true
},
type: {
type: String,
enum: [
'message_received',
'message_sent',
'request_received',
'request_sent',
'request_response',
'product_accepted',
'review_received',
'profile_updated',
'product_added',
'buy_product_added'
],
required: true
},
title: {
type: String,
required: true
},
description: {
type: String
},
relatedCompanyId: {
type: String
},
relatedCompanyName: {
type: String
},
metadata: {
type: mongoose.Schema.Types.Mixed
},
read: {
type: Boolean,
default: false
},
createdAt: {
type: Date,
default: Date.now,
index: true
}
});
// Индексы для оптимизации
activitySchema.index({ companyId: 1, createdAt: -1 });
activitySchema.index({ companyId: 1, read: 1, createdAt: -1 });
module.exports = mongoose.model('Activity', activitySchema);