# Pemetaan Konversi React ke PHP

| Area aplikasi React | Implementasi PHP | Data yang dipakai | Status |
|---|---|---|---|
| Beranda, paket, coverage, CTA WhatsApp | `App::home()` | Konfigurasi paket tertanam | Dipindahkan |
| Company Profile, formulir kontak, preview dan unduh PDF | `App::companyProfile()` | `companyProfiles`, `companyProfileMessages`, `companyProfileDownloads` | Dipindahkan |
| Administrasi Company Profile | `App::companyProfileAdmin()` | Tabel Company Profile dan pesan | Dipindahkan |
| Login email/password | `Auth` | `users`, `localAccounts` | Dipindahkan |
| Portal pelanggan dan invoice | `App::customer()` | `customerSubscriptions`, `customerInvoices` | Dipindahkan |
| Katalog, transaksi, bukti foto, album | `App::operations()`, `App::gallery()` dan `Storage` | `inventoryItems`, `inventoryTransactions` | Dipindahkan |
| Persetujuan penyesuaian dan audit keputusan | `App::operations()`, `App::approvals()`, dan `App::audit()` | `inventoryTransactions`, `inventoryAuditLogs` | Dipindahkan |
| Manajemen karyawan dan peran | `App::users()` | `users`, `localAccounts` | Dipindahkan |
| Tagihan, nomor invoice otomatis, dan status pembayaran | `App::billing()` | `customerSubscriptions`, `customerInvoices` | Dipindahkan |
| Laporan rekap inventaris/transaksi | `App::reportCsv()`, `App::reportXls()`, dan `App::reportPdf()` | Tabel inventaris dan transaksi aktual | Dipindahkan; CSV, XLS, dan PDF dihasilkan tanpa pustaka framework |
| Pengingat tagihan manual | `App::operations()` | `manualBillingReminderLogs` | Dipindahkan sebagai handoff WhatsApp/email tanpa pengiriman otomatis |
| Reminder otomatis Meta WhatsApp | Tidak diaktifkan | `billingReminderSettings`, `billingReminderLogs` | Tetap nonaktif atas permintaan pengguna |
| Google Maps interaktif | Tidak dibawa ke PHP native | Tidak mengubah data | Sengaja dikecualikan; membutuhkan integrasi Maps JavaScript dan kredensial browser tersendiri |
| Streaming query/notifikasi React | Tidak dibawa ke PHP native | Tidak mengubah data | Sengaja diganti alur request–response PHP klasik; data dibaca ulang setelah formulir dikirim |

## Runtime produksi

`Dockerfile` memakai PHP 8.3 Apache, ekstensi PDO MySQL, dan sertifikat CA sistem. Aplikasi membaca `DATABASE_URL`, `BUILT_IN_FORGE_API_URL`, serta `BUILT_IN_FORGE_API_KEY` dari environment runtime. Koneksi PDO dipaksa memakai CA sistem untuk TLS ke TiDB Cloud.

> Jangan mengaktifkan pengingat Meta WhatsApp di implementasi PHP tanpa persetujuan baru dan kredensial yang sesuai.

## Batas kompatibilitas yang disepakati

Implementasi PHP native mempertahankan alur bisnis yang diperlukan oleh MBIZ NETWORK: autentikasi lokal, kontrol peran, Company Profile, katalog dan pergerakan stok, album bukti, persetujuan penyesuaian, tagihan, audit, serta keluaran laporan. **Google Maps interaktif** dan mekanisme pembaruan/streaming khusus React tidak disertakan agar alternatif PHP dapat berjalan tanpa dependensi OAuth, client SDK, maupun Maps API di peramban. Keduanya dapat ditambahkan pada fase lanjutan apabila ada kebutuhan dan kredensial yang disetujui.
