38 lines
942 B
TypeScript
38 lines
942 B
TypeScript
'use server';
|
|
|
|
import { prisma, Prisma, Event, Participant } 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 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 } });
|
|
};
|