Files
var-monorepo/apps/hub/app/(app)/admin/event/action.ts
2025-03-01 17:09:09 +01:00

51 lines
1.3 KiB
TypeScript

"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 } });
};