// pages/api/admin/users/delete.js
import { apiHandler, db } from "@/helpers/api";

export default apiHandler({
	post: deleteUser,
});

async function deleteUser(req, res) {
	const userID = req.userID;
	const { id } = req.body;

	if (!db.initialized) await db.initialize();

	try {
		const userData = await db.User.findByPk(userID);

		if (!userData) return res.status(404).json({ error: "Unknown!" });

		if (userData.admin < 1) {
			return res.status(401).json({ error: "Unauthorized access." });
		}

		if (!id) {
			return res.status(400).json({ error: "ID utilizator este obligatoriu!" });
		}
          
		if (parseInt(id) === parseInt(userID)) {
			return res.status(400).json({ error: "Nu poți șterge propriul cont!" });
		}

		const targetUser = await db.User.findByPk(id);

		if (!targetUser) {
			return res.status(404).json({ error: "Utilizatorul nu există!" });
		}

		await targetUser.destroy();

		return res.status(200).json({
			message: "Utilizatorul a fost șters cu succes!"
		});
	} catch (error) {
		console.error("Eroare la ștergerea utilizatorului:", error);
		return res.status(500).json({ error: "Eroare la ștergerea utilizatorului" });
	}
}