import { prisma } from "@repo/db";
import { Router } from "express";
import { eventCompleted } from "helper/events";
import { handleParticipantEnrolled, handleParticipantFinished } from "modules/event";

const router: Router = Router();

router.post("/handle-participant-finished", async (req, res) => {
	const { participantId } = req.body;
	if (!participantId) {
		res.status(400).json({ error: "Participant ID is required" });
		return;
	}
	const participant = await prisma.participant.findUnique({
		where: {
			id: typeof participantId == "string" ? parseInt(participantId) : participantId,
		},
		include: {
			Event: true,
			User: {
				include: {
					discordAccounts: true,
				},
			},
		},
	});
	console.log("Handeling Participant-completed", participant?.User.publicId);
	if (!participant) {
		res.status(404).json({ error: "Participant not found" });
		return;
	}
	const completed = eventCompleted(participant.Event, participant);
	if (!completed) {
		res.status(400).json({ error: "Event not completed" });
		return;
	}
	await handleParticipantFinished(participant.Event, participant, participant.User);
	res.status(200).json({ message: "Participant finished successfully" });
});

router.post("/handle-participant-enrolled", async (req, res) => {
	const { participantId } = req.body;
	if (!participantId) {
		res.status(400).json({ error: "Participant ID is required" });
		return;
	}
	const participant = await prisma.participant.findUnique({
		where: {
			id: typeof participantId == "string" ? parseInt(participantId) : participantId,
		},
		include: {
			Event: true,
			User: {
				include: {
					discordAccounts: true,
				},
			},
		},
	});
	if (!participant) {
		res.status(404).json({ error: "Participant not found" });
		return;
	}
	const completed = eventCompleted(participant.Event, participant);
	if (completed) {
		res.status(400).json({ error: "Event already completed" });
		return;
	}
	await handleParticipantEnrolled(participant.Event, participant, participant.User);
	res.status(200).json({ message: "Participant enrolled successfully" });
});

export default router;
