# Titipin BaBe — FDE Integration Roadmap

## Status Saat Ini (FDE v1.0)
**PREPARATION** — Endpoint disiapkan, integrasi aktif ditunda.

---

## Prasyarat Sebelum Integrasi Aktif

### Di sisi Titipin BaBe (Laravel 12)

**1. Sistem Akun Customer**
```sql
-- Tambah kolom di tabel users
ALTER TABLE users ADD COLUMN bmt_member_id VARCHAR(20) NULL;
ALTER TABLE users ADD COLUMN bmt_member_verified_at TIMESTAMP NULL;
CREATE UNIQUE INDEX idx_bmt_member_id ON users(bmt_member_id);
```

**2. Link Transaksi ke Anggota**
```sql
-- Tambah kolom di tabel orders
ALTER TABLE orders ADD COLUMN member_id VARCHAR(20) NULL;
-- Atau via join: orders.user_id → users.bmt_member_id
```

**3. Verifikasi via Badri Hub**
- Anggota login ke Titipin menggunakan akun Badri Hub
- Badri Hub meneruskan `bmt_member_id` ke Titipin saat OAuth/SSO
- Atau anggota input manual nomor anggota + verifikasi OTP

---

## Endpoint yang Akan Diaktifkan

Setelah prasyarat terpenuhi, tambahkan ke Titipin BaBe (`routes/api.php`):

```php
Route::middleware('shu.api.key')->prefix('shu-export')->group(function () {
    Route::get('ping',       [ShuExportController::class, 'ping']);
    Route::get('activities', [ShuExportController::class, 'activities']);
});
```

Query activities setelah `bmt_member_id` tersedia:
```sql
SELECT
    u.bmt_member_id              AS external_member_id,
    SUM(o.total_amount)          AS total_transaction_value,
    0                            AS total_profit_generated,
    COUNT(o.id)                  AS transaction_count
FROM orders o
JOIN users u ON o.user_id = u.id
WHERE o.status = 'completed'
  AND u.bmt_member_id IS NOT NULL
  AND DATE(o.created_at) BETWEEN :period_start AND :period_end
GROUP BY u.bmt_member_id
```

---

## Aktivasi di FDE (tanpa perubahan arsitektur)

```bash
# Set URL dan API key Titipin di FDE
php artisan tinker
$unit = App\Models\BusinessUnit::where('code', 'TITIPIN')->first();
$unit->api_endpoint = 'https://titipin.badribersaudara.id';
$unit->api_key_encrypted = Crypt::encryptString('fde-titipin-secret-xxx');
$unit->integration_type = 'api';
$unit->save();

# Test
php artisan fde:test-titipin-sync
```

---

## Target: FDE v1.1
Integrasi Titipin aktif setelah fitur akun customer Titipin selesai.
