const User = require('../models/User'); const bcrypt = require('bcryptjs'); /** * Инициализирует административный аккаунт в системе * Аккаунт создается с логином admin и паролем admin124 * Этот аккаунт будет всегда активен */ const initAdminAccount = async () => { try { console.log('[ADMIN INIT] Проверка наличия административного аккаунта...'); // Проверяем, существует ли уже админ - используем правильный формат email const adminExists = await User.findOne({ email: 'admin@example.com', isAdmin: true }); if (!adminExists) { console.log('[ADMIN INIT] Административный аккаунт не найден. Создаю новый...'); // Создаем админа, если не существует - с валидным форматом email const admin = new User({ name: 'Администратор', email: 'admin@example.com', // Используем валидный email password: 'admin124', dateOfBirth: new Date('1990-01-01'), // Устанавливаем формальную дату рождения gender: 'other', isActive: true, isAdmin: true, location: { city: 'Admin', country: 'System' } }); // Сохраняем админа const savedAdmin = await admin.save(); if (savedAdmin) { console.log('[ADMIN INIT] Административный аккаунт успешно создан с email: admin@example.com'); console.log('[ADMIN INIT] ID администратора:', savedAdmin._id); console.log('[ADMIN INIT] Для входа используйте: email "admin@example.com", пароль "admin124"'); } else { console.error('[ADMIN INIT] Ошибка при сохранении администратора - не возвращен объект'); } } else { console.log('[ADMIN INIT] Административный аккаунт с email "admin@example.com" уже существует'); console.log('[ADMIN INIT] ID администратора:', adminExists._id); } } catch (error) { console.error('[ADMIN INIT] Ошибка при инициализации админ-аккаунта:', error.message); console.error('[ADMIN INIT] Полная ошибка:', error); } }; module.exports = initAdminAccount;