CHORE(merge): merge from develop
- Initial setup and all features from develop branch - Includes: auth, deploy, docker, style fixes - K3S deployment configuration
This commit is contained in:
54
nextjs/const/api.ts
Normal file
54
nextjs/const/api.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
// API 엔드포인트 설정
|
||||
export const API_ENDPOINTS = {
|
||||
// 인증 관련 엔드포인트
|
||||
AUTH: {
|
||||
SIGN_IN: "/api/auth/signin",
|
||||
SIGN_UP: "/api/auth/signup",
|
||||
SIGN_OUT: "/api/auth/signout",
|
||||
ME: "/api/auth/me",
|
||||
},
|
||||
|
||||
// 파일 관련 엔드포인트
|
||||
FILE: {
|
||||
BASE: "/api/files",
|
||||
BY_ID: (id: number) => `/api/files/${id}`,
|
||||
DOWNLOAD_URL: "/api/files/download-url",
|
||||
UPLOAD_URL: "/api/files/upload-url",
|
||||
},
|
||||
|
||||
// 유저 관련 엔드포인트
|
||||
USER: {
|
||||
BASE: "/api/users",
|
||||
BY_ID: (id: number) => `/api/users/${id}`,
|
||||
},
|
||||
|
||||
// 공지사항 관련 엔드포인트
|
||||
ANNOUNCEMENT: {
|
||||
BASE: "/api/announcements",
|
||||
BY_ID: (id: number) => `/api/announcements/${id}`,
|
||||
},
|
||||
|
||||
// 갤러리 관련 엔드포인트
|
||||
GALLERY: {
|
||||
BASE: "/api/gallery",
|
||||
BY_ID: (id: number) => `/api/gallery/${id}`,
|
||||
},
|
||||
|
||||
// 예배 관련 엔드포인트
|
||||
WORSHIP: {
|
||||
BASE: "/api/worship",
|
||||
BY_ID: (id: number) => `/api/worship/${id}`,
|
||||
BY_CATEGORY: (category: string) => `/api/worship?category=${category}`,
|
||||
REORDER: "/api/worship/reorder",
|
||||
NEXT_ORDER: (category: string) => `/api/worship/next-order?category=${category}`,
|
||||
},
|
||||
|
||||
// 제자훈련 관련 엔드포인트
|
||||
DISCIPLE: {
|
||||
BASE: "/api/disciple-videos",
|
||||
BY_ID: (id: number) => `/api/disciple-videos?id=${id}`,
|
||||
BY_STAGE: (stage: string) => `/api/disciple-videos?stage=${stage}`,
|
||||
REORDER: "/api/disciple-videos/reorder",
|
||||
},
|
||||
} as const;
|
||||
|
||||
4
nextjs/const/index.ts
Normal file
4
nextjs/const/index.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// 모든 상수를 한 곳에서 export
|
||||
export * from './api';
|
||||
export * from './s3';
|
||||
|
||||
23
nextjs/const/s3.ts
Normal file
23
nextjs/const/s3.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
// S3 설정
|
||||
export const S3_CONFIG = {
|
||||
BUCKET_NAME: process.env.AWS_S3_BUCKET_NAME || 'jaejadle-bucket',
|
||||
REGION: process.env.AWS_REGION || 'ap-northeast-2',
|
||||
ACCESS_KEY_ID: process.env.AWS_ACCESS_KEY_ID || '',
|
||||
SECRET_ACCESS_KEY: process.env.AWS_SECRET_ACCESS_KEY || '',
|
||||
} as const;
|
||||
|
||||
// S3 클라이언트 인스턴스 (서버 사이드에서만 사용)
|
||||
import { S3Client } from '@aws-sdk/client-s3';
|
||||
|
||||
export const s3Client = new S3Client({
|
||||
region: S3_CONFIG.REGION,
|
||||
credentials: {
|
||||
accessKeyId: S3_CONFIG.ACCESS_KEY_ID,
|
||||
secretAccessKey: S3_CONFIG.SECRET_ACCESS_KEY,
|
||||
},
|
||||
// MinIO를 사용하는 경우 endpoint와 path-style 설정 필요
|
||||
...(process.env.AWS_S3_ENDPOINT && {
|
||||
endpoint: process.env.AWS_S3_ENDPOINT,
|
||||
forcePathStyle: true, // MinIO는 path-style URL 사용 (https://endpoint/bucket/path)
|
||||
}),
|
||||
});
|
||||
137
nextjs/const/tabs.ts
Normal file
137
nextjs/const/tabs.ts
Normal file
@@ -0,0 +1,137 @@
|
||||
const tabs = [
|
||||
{
|
||||
label: "About",
|
||||
href: "/greeting",
|
||||
imageHref: "/subpages/about/aboutBG.webp",
|
||||
sectionIndex: 0,
|
||||
submenu: [
|
||||
{
|
||||
label: "인사말",
|
||||
englishLabel: "GREETING",
|
||||
href: "/greeting",
|
||||
description: "",
|
||||
},
|
||||
{
|
||||
label: "교회 비전",
|
||||
englishLabel: "VISION",
|
||||
href: "/vision",
|
||||
description: "",
|
||||
},
|
||||
{
|
||||
label: "섬기는 분들",
|
||||
englishLabel: "LEADERS",
|
||||
href: "/leaders",
|
||||
description: "",
|
||||
},
|
||||
{
|
||||
label: "오시는 길",
|
||||
englishLabel: "DIRECTIONS",
|
||||
href: "/directions",
|
||||
description: "",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "Worship",
|
||||
href: "/worship",
|
||||
imageHref: "/subpages/worship/worshipBG.webp",
|
||||
sectionIndex: 1,
|
||||
submenu: [
|
||||
{
|
||||
label: "예배 안내",
|
||||
englishLabel: "Worship Guide",
|
||||
href: "/worship",
|
||||
description: "",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "Discipling System",
|
||||
href: "/system",
|
||||
imageHref: "/subpages/system/systemBG.webp",
|
||||
sectionIndex: 2,
|
||||
submenu: [
|
||||
{
|
||||
label: "새가족반",
|
||||
englishLabel: "NEW FAMILY",
|
||||
href: "/system/new-family",
|
||||
description: "",
|
||||
},
|
||||
{
|
||||
label: "기초양육반",
|
||||
englishLabel: "BASIC TRAINING",
|
||||
href: "/system/basic",
|
||||
description: "",
|
||||
},
|
||||
{
|
||||
label: "제자훈련반",
|
||||
englishLabel: "DISCIPLE TRAINING",
|
||||
href: "/system/disciple",
|
||||
description: "",
|
||||
},
|
||||
{
|
||||
label: "전도훈련반",
|
||||
englishLabel: "EVANGELISM TRAINING",
|
||||
href: "/system/evangelism",
|
||||
description: "",
|
||||
},
|
||||
{
|
||||
label: "사역훈련반",
|
||||
englishLabel: "MINISTRY TRAINING",
|
||||
href: "/system/ministry",
|
||||
description: "",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "Next Generation",
|
||||
href: "/generation",
|
||||
imageHref: "/subpages/generation/generationBG.webp",
|
||||
sectionIndex: 3,
|
||||
submenu: [
|
||||
{
|
||||
label: "다음 세대",
|
||||
englishLabel: "NEXT GENERATION",
|
||||
href: "/generation",
|
||||
description: "",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "Mission",
|
||||
href: "/mission",
|
||||
imageHref: "/subpages/mission/missionBG.webp",
|
||||
sectionIndex: 4,
|
||||
submenu: [
|
||||
{
|
||||
label: "선교 비전",
|
||||
englishLabel: "MISSION",
|
||||
href: "/mission",
|
||||
description: "제자들교회는 복음전도와 선교를 위해서 존재합니다.",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "Community",
|
||||
href: "/announcements",
|
||||
imageHref: "/subpages/community/communityBG.webp",
|
||||
sectionIndex: 5,
|
||||
submenu: [
|
||||
{
|
||||
label: "주보",
|
||||
englishLabel: "BROCHURES",
|
||||
href: "/announcements",
|
||||
description: "",
|
||||
},
|
||||
{
|
||||
label: "행사 앨범",
|
||||
englishLabel: "EVENT ALBUM",
|
||||
href: "/gallery",
|
||||
description: "",
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
export default tabs;
|
||||
|
||||
Reference in New Issue
Block a user