"use server";

import { prisma, Prisma, Event, Participant, EventAppointment } from "@repo/db";

export const upsertEvent = async (
	event: Prisma.EventCreateInput,
	id?: Event["id"],
) => {
	const newEvent = id
		? await prisma.event.update({
				where: { id: id },
				data: event,
			})
		: await prisma.event.create({ data: event });
	return newEvent;
};

export const deleteEvent = async (id: Event["id"]) => {
	await prisma.event.delete({ where: { id: id } });
};

export const upsertAppointment = async (
	eventAppointment: Prisma.XOR<
		Prisma.EventAppointmentCreateInput,
		Prisma.EventAppointmentUncheckedCreateInput
	>,
) => {
	const newEventAppointment = eventAppointment.id
		? await prisma.eventAppointment.update({
				where: { id: eventAppointment.id },
				data: eventAppointment,
			})
		: await prisma.eventAppointment.create({ data: eventAppointment });
	return newEventAppointment;
};

export const deleteAppoinement = async (id: Event["id"]) => {
	await prisma.eventAppointment.delete({ where: { id: id } });
	prisma.eventAppointment.findMany({
		where: {
			eventId: id,
		},
		orderBy: {
			// TODO: add order by in relation to table selected column
		},
	});
};
export const deleteParticipant = async (id: Participant["id"]) => {
	await prisma.participant.delete({ where: { id: id } });
};
