실제 카테고리에 맞게 seed 추가

This commit is contained in:
mota
2025-10-13 07:23:08 +09:00
parent 5051ba2934
commit 6ae590b3b2

View File

@@ -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 },