"feat: add EventItem, EventReview models with seed data and mock files, update User and Event schemas"

This commit is contained in:
louiscklaw
2025-06-03 15:29:05 +08:00
parent a0a4ffcb4e
commit 24920fb313
52 changed files with 2140 additions and 56 deletions

View File

@@ -0,0 +1,65 @@
// src/app/services/event.service.ts
//
// PURPOSE:
// - Service for handling Event records
//
// RULES:
// - Follows same pattern as helloworld.service.ts
//
import type { Event } 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<Event[]> {
return prisma.event.findMany();
}
async function getEvent(eventId: number) {
return prisma.event.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 };