47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
/**
|
|
* 4분면 보드 section 정렬 — 조직문화(EX) 프로젝트 재배치
|
|
* npx tsx scripts/migrate-board-sections.ts
|
|
*/
|
|
import 'dotenv/config';
|
|
import { PrismaClient } from '@prisma/client';
|
|
|
|
const prisma = new PrismaClient();
|
|
|
|
const EX_TITLE = /회사생활|C\.E\.L|조직문화|복리후생|문화\s*진단|직원\s*소통/i;
|
|
|
|
async function main() {
|
|
const tasks = await prisma.task.findMany({
|
|
select: { id: true, title: true, section: true },
|
|
});
|
|
|
|
let moved = 0;
|
|
for (const task of tasks) {
|
|
if (task.section === '조직문화') continue;
|
|
if (!EX_TITLE.test(task.title.trim())) continue;
|
|
await prisma.task.update({
|
|
where: { id: task.id },
|
|
data: { section: '조직문화', category: '조직문화' },
|
|
});
|
|
moved += 1;
|
|
console.log(` → 조직문화: ${task.title}`);
|
|
}
|
|
|
|
const col = await prisma.columnConfig.findUnique({ where: { key: '운영관리' } });
|
|
if (col && (col.title === '운영관리' || col.title === '운영관리 부문' || col.titleEn === 'Operations')) {
|
|
await prisma.columnConfig.update({
|
|
where: { key: '운영관리' },
|
|
data: { title: '총무관리', titleEn: 'GA' },
|
|
});
|
|
console.log(' → column 운영관리 title → 총무관리');
|
|
}
|
|
|
|
console.log(`✅ migrate-board-sections complete (${moved} tasks moved)`);
|
|
}
|
|
|
|
main()
|
|
.catch((err) => {
|
|
console.error(err);
|
|
process.exit(1);
|
|
})
|
|
.finally(() => prisma.$disconnect());
|