From e4d620129fe39c9134681b51a345747d5ea812b5 Mon Sep 17 00:00:00 2001 From: Aqua-218 Date: Wed, 11 Feb 2026 00:37:56 +0900 Subject: [PATCH] =?UTF-8?q?=E5=8F=82=E5=8A=A0=E8=80=85=E3=81=AB=E3=82=88?= =?UTF-8?q?=E3=82=8B=E3=82=A4=E3=83=99=E3=83=B3=E3=83=88=E5=8F=96=E5=BE=97?= =?UTF-8?q?=E6=A9=9F=E8=83=BD=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/AtendedEventList.tsx | 8 +++++- src/lib/event.ts | 38 +++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/components/AtendedEventList.tsx b/src/components/AtendedEventList.tsx index 96018c8..a422e73 100644 --- a/src/components/AtendedEventList.tsx +++ b/src/components/AtendedEventList.tsx @@ -1,9 +1,15 @@ "use server"; import Event from "@/lib/event"; +import { auth } from "@/lib/auth"; import { EventList } from "./EventList"; +import { headers } from "next/headers"; export default async function AttendedEventList() { - const events = await Event.findAll(); + const session = await auth.api.getSession({ + headers: await headers(), + }); + const userId = session?.user?.id; + const events = userId ? await Event.findByAtendeeUserId(userId) : []; return ; } diff --git a/src/lib/event.ts b/src/lib/event.ts index daa7884..11527c4 100644 --- a/src/lib/event.ts +++ b/src/lib/event.ts @@ -210,6 +210,44 @@ export default class Event { ); } + static async findByAtendeeUserId( + userId: string, + { + status, + atendeeStatuses = [AtendeeStatus.Attend, AtendeeStatus.Maybe], + }: { status?: EventStatus[]; atendeeStatuses?: AtendeeStatus[] } = {}, + ): Promise { + const events = await prisma.event.findMany({ + where: { + ...(status ? { status: { in: status } } : {}), + participants: { + some: { + userId, + status: { in: atendeeStatuses }, + }, + }, + }, + }); + + return events.map( + (event) => + new Event({ + id: event.id, + title: event.title, + description: event.description || undefined, + date: event.date, + startAt: event.startTime || undefined, + endAt: event.endTime || undefined, + registrationDeadline: event.registrationDeadline || undefined, + capacity: event.capacity || undefined, + location: event.location || undefined, + status: event.status as EventStatus, + createdAt: event.createdAt || undefined, + updatedAt: event.updatedAt || undefined, + }), + ); + } + async addAtendee( userId: string, status: AtendeeStatus = AtendeeStatus.Attend,