# Kord

Kord는 Discord 서버 관리를 돕는 강력하고 유연한 다기능 봇입니다.

## 1. 개요 (Overview)

**Kord**는 효율적인 서버 운영을 위해 설계된 Discord 봇입니다. TypeScript와 Discord.js를 기반으로 구축되었으며, Prisma(PostgreSQL)를 활용하여 안정적이고 확장 가능한 아키텍처를 제공합니다. 임시 음성 채널 관리, 상세 감사 로그, 권한 진단 등의 핵심 기능을 통해 서버 관리자의 부담을 줄여줍니다.

## 2. 요구사항 (Requirements)

- **Runtime**: Node.js v20 이상
- **Package Manager**: Yarn v4 (Berry)
- **Database**: PostgreSQL (Prisma 사용)
- **Discord**: Bot Token 및 Client ID (Slash Command 등록용)

## 3. 테스트 방법 (Test Methods)

본 프로젝트는 Jest를 사용하여 유닛 테스트 및 통합 테스트를 수행합니다.

- **전체 테스트 실행**:

  ```bash
  yarn test
  ```

- **i18n 번역 누락 확인**:

  ```bash
  yarn check-i18n
  ```

## 4. 구동 방법 (Running Methods)

### 로컬 개발 환경

1. **의존성 설치**:

    ```bash
    yarn install
    ```

2. **환경 변수 설정**: `.env.example` 파일을 복사하여 `.env` 파일을 생성하고 필수 값을 입력합니다.

3. **데이터베이스 초기화**:

    ```bash
    npx prisma migrate dev
    npx prisma generate
    ```

4. **개발 서버 실행**:

    ```bash
    yarn dev
    ```

### 프로덕션 환경

1. **빌드**: `yarn build`
2. **실행**: `yarn start`
3. **Docker**: `docker-compose up -d`를 통해 전체 스택(Bot, DB)을 실행할 수 있습니다.

## 5. 기능 목록 (Feature List)

- **임시 음성 채널 (Voice)**: 생성기(Generator) 채널을 통해 동적인 음성 채널 생성 및 관리 기능을 제공합니다.
- **감사 로그 (Audit Log)**: 서버 내 주요 이벤트를 카테고리별(VOICE, PERMISSION, SYSTEM 등)로 세분화하여 기록합니다.
- **서버 설정 (Config)**: 따라하기(Mimic), 큰 이모지(Big Emoji) 등 봇의 기능을 서버별 환경에 맞게 토글하거나 설정할 수 있습니다.
- **권한 감사 (Permission Audit)**: 봇의 정상 작동을 방해하는 권한 문제를 즉시 진단하고 해결 방법을 안내합니다.
- **초기 설정 마법사 (Setup Wizard)**: 봇 도입 초기 기능을 한눈에 설정할 수 있는 직관적인 UI를 제공합니다.
- **미니게임 시스템 (Mini-Games)**: 서버 내에서 즐길 수 있는 다양한 미니게임을 제공하며, 관리자가 게임별 활성화 및 전용 채널을 설정할 수 있습니다.
- **재련 (Refinement)**: 무기를 강화하고 다른 유저와 전투하며 골드를 획득하는 성장형 미니게임입니다.
- **피버 타임 (Fever Time)**: 서버 활동량을 자동으로 분석하여 가장 활발한 시간대에 재련 성공 확률 보너스를 제공합니다.
- **다국어 지원 (i18n)**: 한국어와 영어를 포함한 다국어 환경을 지원합니다.
