# Aurora

> A comprehensive, feature-rich Discord RPG bot built with modern technologies.

![Version](https://img.shields.io/badge/version-1.0.0-blue.svg)
![Bun](https://img.shields.io/badge/Bun-1.0+-black)
![Discord.js](https://img.shields.io/badge/Discord.js-14.x-5865F2)
![Drizzle ORM](https://img.shields.io/badge/Drizzle_ORM-0.30+-C5F74F)
![PostgreSQL](https://img.shields.io/badge/PostgreSQL-16-336791)

Aurora is a powerful Discord bot designed to facilitate RPG-like elements within a Discord server. It features a robust economy, class system, inventory management, quests, and more, all built on top of a high-performance stack using Bun and Drizzle ORM.

## ✨ Features

*   **Class System**: Users can join different classes.
*   **Economy**: Complete economy system with balance, transactions, and daily rewards.
*   **Inventory & Items**: sophisticated item system with rarities, types (Material, Consumable, etc.), and inventory management.
*   **Leveling**: XP-based leveling system to track user activity and progress.
*   **Quests**: Quest system with requirements and rewards.
*   **Trading**: Secure trading system between users.
*   **Lootdrops**: Random loot drops in channels to engage users.
*   **Admin Tools**: Administrative commands for server management.

## 🛠️ Tech Stack

*   **Runtime**: [Bun](https://bun.sh/)
*   **Framework**: [Discord.js](https://discord.js.org/)
*   **Database**: [PostgreSQL](https://www.postgresql.org/)
*   **ORM**: [Drizzle ORM](https://orm.drizzle.team/)
*   **Validation**: [Zod](https://zod.dev/)
*   **Containerization**: [Docker](https://www.docker.com/)

## 🚀 Getting Started

### Prerequisites

*   [Bun](https://bun.sh/) (latest version)
*   [Docker](https://www.docker.com/) & Docker Compose

### Installation

1.  **Clone the repository**
    ```bash
    git clone <repository-url>
    cd aurora
    ```

2.  **Install dependencies**
    ```bash
    bun install
    ```

3.  **Environment Setup**
    Copy the example environment file and configure it:
    ```bash
    cp .env.example .env
    ```
    Edit `.env` with your Discord bot token, Client ID, and database credentials.

    > **Note**: The `DATABASE_URL` in `.env.example` is pre-configured for Docker.

4.  **Start the Database**
    Run the database service using Docker Compose:
    ```bash
    docker compose up -d db
    ```

5.  **Run Migrations**
    ```bash
    bun run migrate
    ```
    OR
    ```bash
    bun run db:push
    ```

### Running the Bot

**Development Mode** (with hot reload):
```bash
bun run dev
```

**Production Mode**:
Build and run with Docker (recommended):
```bash
docker compose up -d app
```

## 📜 Scripts

*   `bun run dev`: Start the bot in watch mode.
*   `bun run generate`: Generate Drizzle migrations.
*   `bun run migrate`: Apply migrations (via Docker).
*   `bun run db:push`: Push, schema to DB (via Docker).
*   `bun run db:studio`: Open Drizzle Studio to inspect the database.
*   `bun test`: Run tests.

## 📂 Project Structure

```
├── src
│   ├── commands    # Slash commands
│   ├── events      # Discord event handlers
│   ├── modules     # Feature modules (Economy, Inventory, etc.)
│   ├── db          # Database schema and connection
│   └── lib         # Shared utilities
├── drizzle         # Drizzle migration files
├── config          # Configuration files
└── scripts         # Utility scripts
```

## 🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## 📄 License

This project is licensed under the MIT License.