import mongoose from 'mongoose'; import dotenv from 'dotenv'; import Item from './models/Item.js'; import User from './models/User.js'; dotenv.config(); // Sample CS2 skins data const cs2Items = [ // Rifles { name: 'AK-47 | Redline', description: 'Classic red design with a sleek finish', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot7HxfDhjxszJemkV09-5lpKKqPrxN7LEm1Rd6dd2j6eQ9N2t2wKw-kttYTihdoGRIw4_YV3Y_lC3kOjxxcjrEV_ZEg/330x192', game: 'cs2', category: 'rifles', rarity: 'legendary', wear: 'ft', float: 0.23, statTrak: false, price: 45.99, featured: true, }, { name: 'M4A4 | Howl', description: 'Contraband item with exclusive wolf design', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpou-6kejhjxszFJQJD_9W7m5a0mvLwOq7c2GpQ6sFOhuDG_Zi72gGw-ERsYTygJ4CSe1BoYAvY_QK3xrq6hZG06p_ImSFn7yAr7SqJyhLihRpSLrs4TpEbkg/330x192', game: 'cs2', category: 'rifles', rarity: 'exceedingly', wear: 'fn', float: 0.03, statTrak: false, price: 2499.99, featured: true, }, { name: 'AK-47 | Fire Serpent', description: 'Legendary serpent design in vibrant colors', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot7HxfDhjxszJemkV09-5lpKKqPv1Ia_ummJW4NE_3e3Ao9rxjALkrUtoam2hIIPGd1U5ZAvR_lC8xr_th5W6vcvKnHJnuSE8pSGKoGZ3O6Y/330x192', game: 'cs2', category: 'rifles', rarity: 'legendary', wear: 'mw', float: 0.12, statTrak: false, price: 1199.99, featured: true, }, { name: 'AWP | Dragon Lore', description: 'The most iconic AWP skin with dragon artwork', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot621FAR17PLfYQJD_9W7m5a0mvLwOq7c2G5V7Zx0teXI8oTht1i1uRQ5fTumcYaQdAdtYlnW-Vm_xey91JLutczXiSw0vR8bWyU/330x192', game: 'cs2', category: 'rifles', rarity: 'exceedingly', wear: 'fn', float: 0.01, statTrak: false, price: 8999.99, featured: true, }, { name: 'M4A1-S | Hyper Beast', description: 'Vibrant beast design with neon colors', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpou-6kejhz2v_Nfz5H_uO1gb-Gw_alDL_CmHpJ18h0juDU-MKki1ex-RBoZ2_3I4ORdQI-NAnY_gK9wbq6hMe1ot2XngNbCEGb/330x192', game: 'cs2', category: 'rifles', rarity: 'legendary', wear: 'ft', float: 0.18, statTrak: true, price: 89.99, featured: false, }, // Pistols { name: 'Desert Eagle | Blaze', description: 'Fiery orange design on a powerful handgun', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgposr-kLAtl7PLZTjlH_9mkgIGbksj5Nr_Yg2Yf7cRjiOXE_Y3wjgLs_UNra2zxdoOVcgJoZ1rU-lDrw-rshcC-7s_Lmydh7XIn4HeLnhGyhQYMMLJIKHOaVg/330x192', game: 'cs2', category: 'pistols', rarity: 'legendary', wear: 'fn', float: 0.01, statTrak: false, price: 499.99, featured: true, }, { name: 'Glock-18 | Fade', description: 'Beautiful fade pattern in multiple colors', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgposbaqKAxf0Ob3djFN79fnzL-YgPD1Pb_ummJW4NE_2LnE8d7w3lDl-UJlYzz0doOVdVA2MgyFqFK4krq50Ja1vcmdn3Jh6SF2pSGKMZuMnP8/330x192', game: 'cs2', category: 'pistols', rarity: 'legendary', wear: 'fn', float: 0.03, statTrak: false, price: 299.99, featured: false, }, { name: 'USP-S | Kill Confirmed', description: 'Skull design with red accents', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpoo6m1FBRp3_bGcjhQ09-jq5WYh8j6OrzZglRd4cJ5nqeYpdvzjFfi-Us5Mj-mJoPGewA9aVrQ_VK4xObo0JDotJvKznZluT5iuyiPvf4lhQ/330x192', game: 'cs2', category: 'pistols', rarity: 'legendary', wear: 'mw', float: 0.08, statTrak: true, price: 79.99, featured: false, }, { name: 'P250 | Asiimov', description: 'Futuristic white and orange design', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpopujwezhjxszYI2gS09-5lpKKqPrxN7LEm1Rd6dd2j6fA8I322AzmqBJoZGr2IoGUcgU-YQ3S_VK3xejxxcjrShWpDcs/330x192', game: 'cs2', category: 'pistols', rarity: 'mythical', wear: 'ft', float: 0.25, statTrak: false, price: 24.99, featured: false, }, // Knives { name: 'Karambit | Fade', description: 'Premium karambit with fade pattern', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpovbSsLQJf2PLacDBA5ciJlY20k_jkI7fUhFRd4cJ5nqfE99mijQyx-UZuaj-md4SUdAI5aAnT_VDtw-3ng5K6uJ-dyXQx6SYqsXbdnwv330_t2VNNmQ/330x192', game: 'cs2', category: 'knives', rarity: 'exceedingly', wear: 'fn', float: 0.01, statTrak: false, price: 1899.99, featured: true, }, { name: 'Butterfly Knife | Doppler', description: 'Butterfly knife with doppler phase pattern', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpovbSsLQJf0ebcZThQ6tCvq4GGqPD1PrbEhFRd4cJ5nqfD99Tx2gTiqhBoYmimI4WSdw45ZQyE_wW_leq90JG_uMjXiSw0RXdg4dU/330x192', game: 'cs2', category: 'knives', rarity: 'exceedingly', wear: 'fn', float: 0.02, statTrak: false, price: 1599.99, featured: true, }, { name: 'M9 Bayonet | Tiger Tooth', description: 'M9 Bayonet with tiger stripe pattern', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpovbSsLQJf3qr3czxb49KzgL-KksjnMrbeqWNU6dNoxOqQpI-s3AXjqEo9ZWmlJI-cIFc4MliC_wK-x73qm9bi64tFrAo8/330x192', game: 'cs2', category: 'knives', rarity: 'exceedingly', wear: 'fn', float: 0.01, statTrak: true, price: 899.99, featured: false, }, // Gloves { name: 'Sport Gloves | Pandora\'s Box', description: 'Purple sport gloves with unique pattern', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DAQ1JmMR1osbaqPQJz7ODYfi9W9eOmgZKbkuXLPr7Vn35cppYi3bzH9I3x2gXt-xVoam2hcoGUJgM7MlqG_1C3w7i71JC0upnPmCRk6HIj7SmOzhapwUYbjhwZJJE/330x192', game: 'cs2', category: 'gloves', rarity: 'exceedingly', wear: 'ft', float: 0.15, statTrak: false, price: 899.99, featured: false, }, { name: 'Driver Gloves | Crimson Weave', description: 'Red woven driver gloves', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DAQ1h3LAVbv6mxFABs3OXNYgJR_Nm1nYGHnuTgDKvYm25u4MBwnPCPo4qmigXmrxBvZzjyJ4SccwE_ZgrZ8lG2wea5jZDquZTXiSw0NMmh4j8/330x192', game: 'cs2', category: 'gloves', rarity: 'exceedingly', wear: 'mw', float: 0.14, statTrak: false, price: 699.99, featured: false, }, // More affordable items { name: 'AK-47 | Vulcan', description: 'Sci-fi themed AK-47 skin', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot7HxfDhjxszJemkV09-5lpKKqPv9NLPF2G1Q_txym9bJ8I3jkRqyrEtlZm2mcYHHdQ47YlCB_wXqk-i-0se5vJ_ImyY3vCkg7SzYyxepwUYbE3v8o_Y/330x192', game: 'cs2', category: 'rifles', rarity: 'legendary', wear: 'ft', float: 0.22, statTrak: false, price: 32.99, featured: false, }, { name: 'AWP | Asiimov', description: 'Popular futuristic AWP design', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot621FAR17PLfYQJD_9W7m5a0mvLwOq7c2GpTsJEl2rvHrYqljVe1-hE_Mjv1dY-dIw8-MFDS-VW-kua6hMO5vJrXiSw0kqz-lUc/330x192', game: 'cs2', category: 'rifles', rarity: 'legendary', wear: 'ft', float: 0.26, statTrak: false, price: 54.99, featured: false, }, { name: 'M4A4 | Desolate Space', description: 'Dark space-themed design', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpou-6kejhjxszFJQJD_9W7m5a0mvLwOq7cqWZU7Mxkh9bN9J7yjRrhrRVvZW_0do-RelU6aF2C-Vm8xr_q08W_tJvNz3F9-n51BgbKmXI/330x192', game: 'cs2', category: 'rifles', rarity: 'mythical', wear: 'mw', float: 0.11, statTrak: false, price: 19.99, featured: false, }, { name: 'AK-47 | Neon Rider', description: 'Vibrant neon design with rider artwork', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot7HxfDhjxszJemkV086jloKOhOP7Ia_um25V4dB8teXI8oThxgTnrRY9Nm37IoCRdlA4ZQrV-gC7w-bv15G1vJvIzSY1uidz4SuPnxGpwUYbLnf4SXo/330x192', game: 'cs2', category: 'rifles', rarity: 'mythical', wear: 'mw', float: 0.09, statTrak: true, price: 29.99, featured: false, }, { name: 'MAC-10 | Neon Rider', description: 'Colorful neon themed SMG', image: 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpou7umeldf0Ob3fDxBvYyJmYGbhP_kI7fUhFRd4cJ5nqfEoNin2lXirRJqZGn7cYGRdg5taQ6GqQfvx-y51J-4vJXOn3QyuHZzsX_ZnBaqwUYbwKM3r2A/330x192', game: 'cs2', category: 'smgs', rarity: 'mythical', wear: 'fn', float: 0.05, statTrak: false, price: 12.99, featured: false, }, ]; // Sample Rust items const rustItems = [ { name: 'AK-47 | Glory', description: 'Legendary AK skin with intricate design', image: 'https://steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXA/330x192', game: 'rust', category: 'rifles', rarity: 'legendary', wear: null, float: null, statTrak: false, price: 89.99, featured: false, }, { name: 'Metal Facemask | Red Hazmat', description: 'Red hazmat themed facemask', image: 'https://steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXA/330x192', game: 'rust', category: 'other', rarity: 'rare', wear: null, float: null, statTrak: false, price: 24.99, featured: false, }, { name: 'Python Revolver | Tempered', description: 'Blue tempered Python revolver skin', image: 'https://steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXA/330x192', game: 'rust', category: 'pistols', rarity: 'mythical', wear: null, float: null, statTrak: false, price: 45.99, featured: false, }, { name: 'MP5 | Tempered', description: 'Blue steel MP5 skin', image: 'https://steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXA/330x192', game: 'rust', category: 'smgs', rarity: 'rare', wear: null, float: null, statTrak: false, price: 19.99, featured: false, }, ]; async function seedDatabase() { try { // Connect to MongoDB await mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/turbotrades'); console.log('āœ… Connected to MongoDB'); // Clear existing items await Item.deleteMany({}); console.log('šŸ—‘ļø Cleared existing items'); // Find or create a default seller (admin user) let seller = await User.findOne({ staffLevel: { $gte: 3 } }); if (!seller) { // Create a default admin user if none exists seller = await User.create({ username: 'TurboTrades Admin', steamId: '76561198000000000', avatar: 'https://avatars.steamstatic.com/fef49e7fa7e1997310d705b2a6158ff8dc1cdfeb_full.jpg', staffLevel: 3, balance: 100000, tradeUrl: 'https://steamcommunity.com/tradeoffer/new/?partner=000000000&token=XXXXXXXX', }); console.log('šŸ‘¤ Created default admin user'); } // Add seller ID to all items const allItems = [...cs2Items, ...rustItems].map(item => ({ ...item, seller: seller._id, listedAt: new Date(Date.now() - Math.random() * 30 * 24 * 60 * 60 * 1000), // Random date within last 30 days })); // Insert items const insertedItems = await Item.insertMany(allItems); console.log(`āœ… Added ${insertedItems.length} items to the database`); // Display summary console.log('\nšŸ“Š Summary:'); console.log(` CS2 Items: ${cs2Items.length}`); console.log(` Rust Items: ${rustItems.length}`); console.log(` Total Items: ${insertedItems.length}`); console.log(` Featured Items: ${insertedItems.filter(i => i.featured).length}`); const totalValue = insertedItems.reduce((sum, item) => sum + item.price, 0); console.log(` Total Marketplace Value: $${totalValue.toFixed(2)}`); console.log('\nšŸŽ‰ Database seeded successfully!'); console.log('\nYou can now start the backend and view items in the frontend.'); } catch (error) { console.error('āŒ Error seeding database:', error); process.exit(1); } finally { await mongoose.connection.close(); console.log('\nšŸ‘‹ Disconnected from MongoDB'); process.exit(0); } } // Run the seed function seedDatabase();