diff --git a/prisma/seed.js b/prisma/seed.js index 27defae..8978486 100644 --- a/prisma/seed.js +++ b/prisma/seed.js @@ -3,11 +3,15 @@ const { PrismaClient } = require("@prisma/client"); const prisma = new PrismaClient(); async function upsertCategories() { + // 카테고리 트리 (projectmemo 기준 상위 그룹) const categories = [ - { name: "운영", slug: "ops", sortOrder: 1, status: "active" }, - { name: "커뮤니티", slug: "community", sortOrder: 2, status: "active" }, - { name: "특수", slug: "special", sortOrder: 3, status: "active" }, - { name: "제휴", slug: "partners", sortOrder: 4, status: "active" }, + { name: "암실소문 (메인)", slug: "main", sortOrder: 1, status: "active" }, + { name: "명예의 전당", slug: "hall-of-fame", sortOrder: 2, status: "active" }, + { name: "주변 제휴업체", slug: "nearby-partners", sortOrder: 3, status: "active" }, + { name: "제휴업소 정보", slug: "partner-info", sortOrder: 4, status: "active" }, + { name: "방문후기", slug: "reviews", sortOrder: 5, status: "active" }, + { name: "소통방", slug: "community", sortOrder: 6, status: "active" }, + { name: "광고/제휴 문반", slug: "ads-affiliates", sortOrder: 7, status: "active" }, ]; const map = {}; for (const c of categories) { @@ -130,12 +134,33 @@ async function upsertBoards(admin, categoryMap) { const created = []; for (const b of boards) { - // 카테고리 매핑 규칙 - let categorySlug = "community"; - if (["notice", "bug-report"].includes(b.slug)) categorySlug = "ops"; - if (["attendance", "nearby-partners", "ranking", "free-coupons", "monthly-stats"].includes(b.slug)) categorySlug = "special"; - if (["partners-photos"].includes(b.slug)) categorySlug = "partners"; - + // 카테고리 매핑 규칙 (트리 기준 상위 카테고리) + const mapBySlug = { + // 암실소문 (메인) + notice: "main", + greetings: "main", + "bug-report": "main", + event: "main", + attendance: "main", + // 명예의 전당 + ranking: "hall-of-fame", + "free-coupons": "hall-of-fame", + "monthly-stats": "hall-of-fame", + // 주변 제휴업체 + "nearby-partners": "nearby-partners", + // 제휴업소 정보 + "partners-photos": "partner-info", + // 방문후기 + reviews: "reviews", + // 소통방(기본값 community로 처리) + free: "community", + qna: "community", + tips: "community", + anonymous: "community", + "find-therapist": "community", + "blue-house": "community", + }; + const categorySlug = mapBySlug[b.slug] || "community"; const category = categoryMap[categorySlug]; const board = await prisma.board.upsert({ where: { slug: b.slug },