# Dashboard New

Dashboard New adalah panel website dan admin untuk server Perfect World berbasis Laravel 12, Inertia, React, dan TypeScript. Aplikasi ini menggabungkan landing page publik, dashboard pemain, integrasi top up, serta alat operasional admin dalam satu codebase.

## Fitur Utama

- Website publik: landing page, news, download, ranking, top spender, dan widget status server.
- Dashboard pemain: top up, riwayat transaksi, voucher, shop, event, ranking, dan layanan in-game.
- Admin panel: manajemen user, character, faction, GM, streamer, item template, news, download, voucher, shop, reward, dan backup.
- Payment gateway: iPaymu, Duitku, Tripay, dan Pakasir, plus promo code dan sinkronisasi transaksi.
- Operasional server: broadcast, chat log, scheduler server rate, setting theme/menu, file upload, SMTP, dan social login.
- Realtime: Laravel Reverb dengan Echo client di frontend.

## Stack

- PHP 8.2+
- Laravel 12
- Inertia.js + React 19 + TypeScript
- Vite + Tailwind CSS 4
- Pest + Vitest
- MySQL/MariaDB
- Redis opsional
- Laravel Reverb untuk websocket/realtime

## Struktur Singkat

- `app/`: logic backend, model, middleware, notification, service layer.
- `resources/js/`: halaman Inertia, komponen React, hooks, dan utilitas frontend.
- `routes/web.php`: area publik dan dashboard pemain.
- `routes/admin.php`: seluruh endpoint panel admin.
- `database/migrations/`: skema database aplikasi.
- `tests/`: test backend dan frontend.

## Kebutuhan

- PHP 8.2 atau lebih baru
- Composer
- Node.js 20+ dan npm
- MySQL/MariaDB
- Akses ke service game Perfect World jika fitur in-game ingin dipakai
- Redis opsional untuk queue/cache/realtime skala lebih tinggi

## Setup Lokal

1. Install dependency backend dan frontend.

```bash
composer install
npm install
```

2. Buat file environment dari template lalu generate app key.

```bash
cp .env.example .env
php artisan key:generate
```

3. Isi konfigurasi penting di `.env`.

- Database: `DB_*`
- URL aplikasi: `APP_URL`
- Koneksi game delivery: `PW_G_DELIVERY_HOST`, `PW_G_DELIVERY_PORT`
- Mail: `MAIL_*` jika fitur email dipakai
- Reverb: `REVERB_*` dan `VITE_REVERB_*` bila realtime diaktifkan
- Integrasi tambahan: Google OAuth, Turnstile, Discord token, dan Scribe auth key bila dibutuhkan

4. Jalankan migration.

```bash
php artisan migrate
```

5. Buat symbolic link storage jika fitur upload/public asset dipakai.

```bash
php artisan storage:link
```

6. Seeder opsional untuk local/dev.

```bash
php artisan db:seed --class=RoleSeeder
php artisan db:seed --class=PakasirSettingsSeeder
php artisan db:seed --class=TestUserSeeder
```

`TestUserSeeder` hanya cocok untuk environment lokal karena membuat akun contoh.

7. Jalankan aplikasi untuk development.

```bash
composer dev
```

8. Jika memakai SSR.

```bash
composer dev:ssr
```

## Perintah Penting

```bash
php artisan test
npm run test
npm run lint
npm run format:check
npm run build
npm run build:ssr
```

## Catatan Integrasi

- Konfigurasi gateway pembayaran utama disimpan lewat halaman admin, bukan hardcoded di source.
- `.env.example` sudah disediakan tanpa secret dan bisa dipakai sebagai starting point setup.
- Untuk fitur realtime, samakan nilai `REVERB_*` dengan `VITE_REVERB_*`.
- Untuk fitur in-game, aplikasi mengandalkan service Perfect World yang dapat diakses dari server aplikasi.
- Jangan commit `.env` atau kredensial produksi ke repository.

## Deployment Ringkas

1. Set `.env` production dan pastikan `APP_DEBUG=false`.
2. Install dependency production.
3. Build asset dengan `npm run build`.
4. Jalankan migration.
5. Pastikan queue worker dan Reverb berjalan bila fitur tersebut dipakai.
