const { mClient } = require('../../../index')
require('dotenv').config()
module.exports = {
	name: 'nuts',
	description: 'get nuts',
	aliases: ['n', 'nget', 'nutsget'],
	async execute(message, args) {
		const db = mClient.db(process.env.M_DB)
		const nutsColl = db.collection('items_nuts')
		const nutsStatsColl = db.collection('stats_nuts')
		const cdColl = db.collection('items_cooldowns')
		const cdData = await cdColl.findOne({ userID: message.author.id })

		if (cdData?.cooldown > (Date.now() / 1000)) {
			return await message.reply({
				content: `Du kannst erst <t:${Math.floor(cdData?.cooldown)}:R> wieder nussen :(`,
			})
		}

		let cd = Math.floor((Date.now() + 3600000) / 1000)
		await cdColl.findOneAndUpdate({
			userID: message.author.id
		}, {
			$set: {
				cooldown: cd,
				application: 'nuts'
			}
		}, {
			upsert: true
		})

		const amount = Math.floor(Math.random() * 10)

		await nutsColl.findOneAndUpdate({
			userID: message.author.id
		}, {
			$inc: { nuts: amount }
		}, {
			upsert: true
		})

		await nutsStatsColl.findOneAndUpdate(
			{ userID: message.author.id },
			{ $inc: { [`stat.${amount}`]: 1 } },
			{ upsert: true }
		)

		await nutsStatsColl.findOneAndUpdate(
			{ userID: "__global" },
			{ $inc: { [`stat.${amount}`]: 1 } },
			{ upsert: true }
		)
		// Helper for singular/plural
    	const formatNut = (amount) => `${amount === 1 ? 'eine' : amount} ${amount === 1 ? 'Nuss' : 'Nüsse'}`

		let nutText = `Du hast ${formatNut(amount)} bekommen! :chestnut:`
		if (amount <= 0) {
			nutText = `Du hast keine Nuss bekommen! :yoink_help:`
		}
		return await message.reply({
			content: nutText
		})
	}
}