import { MongoClient } from 'mongodb' import * as dotenv from 'dotenv' dotenv.config() const MONGODB_URI = process.env.MONGODB_URI if (!MONGODB_URI) { console.error('Please define the MONGODB_URI environment variable in .env') process.exit(1) } async function resetDatabase() { const reason = process.argv.slice(2).join(' ') || 'inflated market' let client: MongoClient | null = null; try { client = await MongoClient.connect(MONGODB_URI!) const db = client.db('pummmpfun') console.log('Starting database reset...') // Delete all coins console.log('Deleting all coins...') const coinsResult = await db.collection('coins').deleteMany({}) console.log(`Deleted ${coinsResult.deletedCount} coins`) // Delete all comments console.log('Deleting all comments...') const commentsResult = await db.collection('comments').deleteMany({}) console.log(`Deleted ${commentsResult.deletedCount} comments`) // Delete all trades console.log('Deleting all trades...') const tradesResult = await db.collection('trades').deleteMany({}) console.log(`Deleted ${tradesResult.deletedCount} trades`) // Delete all rains console.log('Deleting all rains...') const rainsResult = await db.collection('rains').deleteMany({}) console.log(`Deleted ${rainsResult.deletedCount} rains`) // Reset user balances and portfolios (keep accounts and badges) console.log('Resetting user balances and portfolios...') const usersResult = await db.collection('users').updateMany( {}, { $set: { balance: 5, portfolio: [] } } ) console.log(`Reset ${usersResult.modifiedCount} users (matched ${usersResult.matchedCount})`) // Set notice about the reset const resetDate = new Date().toLocaleDateString() const noticeMessage = `As of ${resetDate}, the database has been reset due to ${reason}.` console.log('Setting reset notice...') await db.collection('notices').insertOne({ message: noticeMessage, reason: reason, createdAt: new Date(), updatedAt: new Date() }) console.log('Reset notice set') console.log('Database reset complete!') } catch (error) { console.error('Error during database reset:', error) } finally { if (client) await client.close() } } resetDatabase()