실제 카테고리에 맞게 seed 추가
This commit is contained in:
@@ -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 },
|
||||
|
||||
Reference in New Issue
Block a user