const mongoose = require('../../../utils/mongoose'); require('dotenv').config(); // Подключение моделей const Activity = require('../models/Activity'); const User = require('../models/User'); const Company = require('../models/Company'); const activityTemplates = [ { type: 'request_received', title: 'Получен новый запрос', description: 'Компания отправила вам запрос на поставку товаров', }, { type: 'request_sent', title: 'Запрос отправлен', description: 'Ваш запрос был отправлен компании', }, { type: 'request_response', title: 'Получен ответ на запрос', description: 'Компания ответила на ваш запрос', }, { type: 'product_accepted', title: 'Товар акцептован', description: 'Ваш товар был акцептован компанией', }, { type: 'message_received', title: 'Новое сообщение', description: 'Вы получили новое сообщение от компании', }, { type: 'review_received', title: 'Новый отзыв', description: 'Компания оставила отзыв о сотрудничестве', }, { type: 'profile_updated', title: 'Профиль обновлен', description: 'Информация о вашей компании была обновлена', }, { type: 'buy_product_added', title: 'Добавлен товар для закупки', description: 'В раздел "Я покупаю" добавлен новый товар', }, ]; async function seedActivities() { try { // Подключение к MongoDB происходит через server/utils/mongoose.ts console.log('🌱 Checking MongoDB connection...'); if (mongoose.connection.readyState !== 1) { console.log('⏳ Waiting for MongoDB connection...'); await new Promise((resolve) => { mongoose.connection.once('connected', resolve); }); } console.log('✅ Connected to MongoDB'); // Найти тестового пользователя const testUser = await User.findOne({ email: 'admin@test-company.ru' }); if (!testUser) { console.log('❌ Test user not found. Please run recreate-test-user.js first.'); process.exit(1); } const company = await Company.findById(testUser.companyId); if (!company) { console.log('❌ Company not found'); process.exit(1); } // Найти другие компании для связанных активностей const otherCompanies = await Company.find({ _id: { $ne: company._id } }).limit(3); console.log('🗑️ Clearing existing activities...'); await Activity.deleteMany({ companyId: company._id.toString() }); console.log('➕ Creating activities...'); const activities = []; for (let i = 0; i < 8; i++) { const template = activityTemplates[i % activityTemplates.length]; const relatedCompany = otherCompanies[i % otherCompanies.length]; const activity = { companyId: company._id.toString(), userId: testUser._id.toString(), type: template.type, title: template.title, description: template.description, relatedCompanyId: relatedCompany?._id.toString(), relatedCompanyName: relatedCompany?.shortName || relatedCompany?.fullName, read: i >= 5, // Первые 5 непрочитанные createdAt: new Date(Date.now() - i * 3600000), // Каждый час назад }; activities.push(activity); } await Activity.insertMany(activities); console.log(`✅ Created ${activities.length} activities`); console.log('✨ Activities seeded successfully!'); await mongoose.connection.close(); console.log('👋 Database connection closed'); } catch (error) { console.error('❌ Error seeding activities:', error); process.exit(1); } } // Запуск if (require.main === module) { seedActivities(); } module.exports = { seedActivities };