diff --git a/prisma/seed.js b/prisma/seed.js index c797b77..51e1593 100644 --- a/prisma/seed.js +++ b/prisma/seed.js @@ -369,6 +369,19 @@ async function seedPartnerShops() { }); } +async function seedBanners() { + // 기존 배너 정리 후 5개만 채움 + await prisma.banner.deleteMany({}); + const items = Array.from({ length: 5 }).map((_, i) => ({ + title: `메인 배너 ${i + 1}`, + imageUrl: "/sample.jpg", + linkUrl: "/", + sortOrder: i + 1, + active: true, + })); + await prisma.banner.createMany({ data: items }); +} + async function main() { await upsertRoles(); const admin = await upsertAdmin(); @@ -379,6 +392,7 @@ async function main() { const boards = await upsertBoards(admin, categoryMap); await createPostsForAllBoards(boards, 100, admin); await seedPartnerShops(); + await seedBanners(); await seedPolicies(); diff --git a/src/app/boards/[id]/page.tsx b/src/app/boards/[id]/page.tsx index 235dd8d..0605df8 100644 --- a/src/app/boards/[id]/page.tsx +++ b/src/app/boards/[id]/page.tsx @@ -10,7 +10,6 @@ export default async function BoardDetail({ params, searchParams }: { params: an const sp = searchParams?.then ? await searchParams : searchParams; const idOrSlug = p.id as string; const sort = (sp?.sort as "recent" | "popular" | undefined) ?? "recent"; - const period = (sp?.period as string | undefined) ?? "monthly"; // 보드 slug 조회 (새 글 페이지 프리셋 전달) const h = await headers(); const host = h.get("host") ?? "localhost:3000"; @@ -32,10 +31,13 @@ export default async function BoardDetail({ params, searchParams }: { params: an let rankingItems: { userId: string; nickname: string; points: number }[] = []; if (isSpecialRanking) { - const rankingUrl = new URL(`/api/ranking?period=${encodeURIComponent(period)}`, base).toString(); - const rankingRes = await fetch(rankingUrl, { cache: "no-store" }); - const rankingData = await rankingRes.json().catch(() => ({ items: [] })); - rankingItems = rankingData?.items ?? []; + const topUsers = await prisma.user.findMany({ + select: { userId: true, nickname: true, points: true }, + where: { status: "active" }, + orderBy: { points: "desc" }, + take: 100, + }); + rankingItems = topUsers.map((u) => ({ userId: u.userId, nickname: u.nickname, points: u.points })); } return (