<p align="center"><a href="#"><img src="./public/assets/logo/rosalia-express-logo.png" width="200" alt="Rosalia Express Logo"></a></p>

# 🚀 Rosalia Express Mobile API
Projek ini adalah Backend REST API untuk pengembangan aplikasi *Rosalia Express Mobile* dengan menggunakan Laravel 13

## 📦 Tech Stack
- PHP ^8.3
- Laravel ^13
- Laravel Sanctum (API Authentication, Built in)
- Pest PHP (Testing)
- Static analysis (PHPStan + Larastan)
- Code style (Laravel Pint)

## ⚙️ Installation

### 1. Clone Repository
```bash
# Clone Repository (Using Temporary Repository)
git clone http://192.168.8.14/repo/rosalia_indah/rosalia_express_api.git

cd rosalia_express_api
```

### 2. Setup Projek
```bash
# Install Depedency
composer install

# Copy .env
cp .env.example .env

# Generate App Key
php artisan key:generate
```

### 3. Menjalankan Aplikasi
```bash
php artisan serve
```

## 🧪 Testing
```bash
# Memakai environment default (.env)
php artisan test

# Memakai environment testing (.env.testing)
php artisan test --env=testing
```

## 🧹 Code Quality
### 1. Linter (Pint)
```bash
./vendor/bin/pint
```

### 2. Static Analysis
```bash
# PHP Stan
./vendor/bin/phpstan analyse app

# Limit Memory
./vendor/bin/phpstan analyse app --memory-limit=2G
```

### 3. Lint & Static Analysis
```bash
composer lint
```
## ⚠️ Database Migration (Temporary Note)
Tidak Semua Migration **tidak dijalankan di project ini**.

 > ⚠️ Note: Project ini hanya berfungsi sebagai API layer yang menggunakan database yang sudah ada.

### 1. Migration Yang Dijalankan Di Project Ini :
- [create_cache_table](./database/migrations/0001_01_01_000001_create_cache_table.php)
- [create_jobs_table](./database/migrations/0001_01_01_000002_create_jobs_table.php)
- [create_personal_access_tokens_table](./database/migrations/2026_04_15_065320_create_personal_access_tokens_table.php)

```bash
php artisan migrate
```

Semua skema database dikelola oleh aplikasi **Olive**, sehingga:
- ⚠️ Ketika menjalankan `php artisan migrate`
- ✅ Pastikan database sudah disiapkan oleh aplikasi Olive

