72 lines
1.5 KiB
TypeScript
72 lines
1.5 KiB
TypeScript
// src/app/services/event.service.ts
|
|
//
|
|
// PURPOSE:
|
|
// - Service for handling Event records
|
|
//
|
|
// RULES:
|
|
// - Follows same pattern as helloworld.service.ts
|
|
//
|
|
|
|
import type { EventItem } from '@prisma/client';
|
|
|
|
import prisma from '../lib/prisma';
|
|
|
|
type CreateEvent = {
|
|
eventDate: DateTime;
|
|
title: string;
|
|
joinMembers?: Json[];
|
|
price: number;
|
|
currency: string;
|
|
duration_m: number;
|
|
ageBottom: number;
|
|
ageTop: number;
|
|
location: string;
|
|
avatar?: string;
|
|
memberId?: number;
|
|
};
|
|
|
|
type UpdateEvent = {
|
|
eventDate?: DateTime;
|
|
title?: string;
|
|
joinMembers?: Json[];
|
|
price?: number;
|
|
currency?: string;
|
|
duration_m?: number;
|
|
ageBottom?: number;
|
|
ageTop?: number;
|
|
location?: string;
|
|
avatar?: string;
|
|
memberId?: number;
|
|
};
|
|
|
|
async function listEvents(): Promise<EventItem[]> {
|
|
return prisma.eventItem.findMany();
|
|
}
|
|
|
|
async function getEvent(eventId: string): Promise<EventItem | null> {
|
|
return prisma.eventItem.findFirst({ where: { id: eventId } });
|
|
}
|
|
|
|
// async function createNewEvent(createForm: CreateEvent) {
|
|
// return prisma.event.create({ data: createForm });
|
|
// }
|
|
|
|
// async function updateEvent(eventId: number, updateForm: UpdateEvent) {
|
|
// return prisma.event.update({
|
|
// where: { id: eventId },
|
|
// data: updateForm,
|
|
// });
|
|
// }
|
|
|
|
// async function deleteEvent(eventId: number) {
|
|
// return prisma.event.delete({ where: { id: eventId } });
|
|
// }
|
|
|
|
export {
|
|
getEvent,
|
|
listEvents,
|
|
// updateEvent,
|
|
// deleteEvent,
|
|
// createNewEvent,
|
|
};
|