init
This commit is contained in:
@@ -0,0 +1,153 @@
|
||||
/**
|
||||
* 메뉴 생성 스크립트
|
||||
* 데이터베이스에 기본 메뉴 항목을 생성합니다.
|
||||
*/
|
||||
const { Menu } = require('../src/models');
|
||||
const { sequelize } = require('../src/config/database');
|
||||
require('dotenv').config();
|
||||
|
||||
// 관리자용 메뉴 항목
|
||||
const adminMenus = [
|
||||
{
|
||||
title: '대시보드',
|
||||
icon: 'pi pi-home',
|
||||
to: '/admin',
|
||||
role: 'admin',
|
||||
order: 1,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: '클럽 관리',
|
||||
icon: 'pi pi-users',
|
||||
to: '/admin/clubs',
|
||||
role: 'admin',
|
||||
order: 2,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: '사용자 관리',
|
||||
icon: 'pi pi-user',
|
||||
to: '/admin/users',
|
||||
role: 'admin',
|
||||
order: 3,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: '구독 관리',
|
||||
icon: 'pi pi-credit-card',
|
||||
to: '/admin/subscriptions',
|
||||
role: 'admin',
|
||||
order: 4,
|
||||
visible: true
|
||||
}
|
||||
];
|
||||
|
||||
// 일반 사용자용 메뉴 항목
|
||||
const userMenus = [
|
||||
{
|
||||
title: '대시보드',
|
||||
icon: 'pi pi-home',
|
||||
to: '/clubs',
|
||||
role: 'user',
|
||||
order: 1,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: '회원 관리',
|
||||
icon: 'pi pi-users',
|
||||
to: '/clubs/members',
|
||||
role: 'user',
|
||||
order: 2,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: '모임 관리',
|
||||
icon: 'pi pi-calendar',
|
||||
to: '/clubs/meetings',
|
||||
role: 'user',
|
||||
order: 3,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: '점수 관리',
|
||||
icon: 'pi pi-chart-bar',
|
||||
to: '/clubs/meetings/scores',
|
||||
role: 'user',
|
||||
order: 4,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: '통계',
|
||||
icon: 'pi pi-chart-line',
|
||||
to: '/statistics',
|
||||
role: 'user',
|
||||
order: 5,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: '예약',
|
||||
icon: 'pi pi-bookmark',
|
||||
to: '/clubs/reservations',
|
||||
role: 'user',
|
||||
order: 6,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: '이벤트 관리',
|
||||
icon: 'pi pi-list',
|
||||
to: '/clubs/events',
|
||||
role: 'user',
|
||||
order: 7,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: '이벤트 캘린더',
|
||||
icon: 'pi pi-calendar',
|
||||
to: '/clubs/events/calendar',
|
||||
role: 'user',
|
||||
order: 8,
|
||||
visible: true
|
||||
}
|
||||
];
|
||||
|
||||
// 메뉴 생성 함수
|
||||
async function createMenus() {
|
||||
try {
|
||||
// 데이터베이스 연결 확인
|
||||
await sequelize.authenticate();
|
||||
console.log('데이터베이스 연결 성공');
|
||||
|
||||
// 메뉴 테이블 동기화
|
||||
await Menu.sync({ alter: true });
|
||||
console.log('메뉴 테이블 동기화 완료');
|
||||
|
||||
// 기존 메뉴 항목 확인
|
||||
const existingMenus = await Menu.findAll();
|
||||
|
||||
if (existingMenus.length > 0) {
|
||||
console.log('메뉴 항목이 이미 존재합니다.');
|
||||
return;
|
||||
}
|
||||
|
||||
// 관리자용 메뉴 생성
|
||||
for (const menu of adminMenus) {
|
||||
await Menu.create(menu);
|
||||
}
|
||||
console.log('관리자용 메뉴 생성 완료');
|
||||
|
||||
// 일반 사용자용 메뉴 생성
|
||||
for (const menu of userMenus) {
|
||||
await Menu.create(menu);
|
||||
}
|
||||
console.log('일반 사용자용 메뉴 생성 완료');
|
||||
|
||||
console.log('모든 메뉴 항목이 성공적으로 생성되었습니다.');
|
||||
} catch (error) {
|
||||
console.error('메뉴 생성 중 오류 발생:', error);
|
||||
} finally {
|
||||
process.exit();
|
||||
}
|
||||
}
|
||||
|
||||
// 스크립트 실행
|
||||
createMenus();
|
||||
Reference in New Issue
Block a user