'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 >, id?: EventAppointment['id'] ) => { const newEventAppointment = id ? await prisma.eventAppointment.update({ where: { id: 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 upsertParticipant = async ( participant: Prisma.ParticipantCreateInput, id?: Participant['id'] ) => { const newParticipant = id ? await prisma.participant.update({ where: { id: id }, data: participant, }) : await prisma.participant.create({ data: participant }); return newParticipant; }; export const deleteParticipant = async (id: Participant['id']) => { await prisma.participant.delete({ where: { id: id } }); };