# RPIOnlineCgMiziv2 - Commercial DB Ready

Pakej ini kekal PHP native + MySQL + cPanel, tetapi struktur database ditambah baik untuk standard komersial.

## Kandungan penting

- `public/` - fail yang diupload ke `public_html/rpionlinebaru/`
- `rpi_private/config.example.php` - copy kepada `config.php` dan isi credential database
- `database/mysql-schema-commercial-new-db.sql` - schema penuh untuk database BARU
- `public/setup-commercial-db.php` - installer/upgrade idempotent untuk tambah table, column dan index komersial
- `public/diagnose-commercial.php` - semak status table/column selepas setup

## Cara paling selamat untuk folder baru

1. Cipta database baru dalam cPanel.
2. Import `database/mysql-schema-commercial-new-db.sql` dalam phpMyAdmin.
3. Upload kandungan `public/` ke `public_html/rpionlinebaru/`.
4. Letak `config.php` sebenar di `/home/username/rpi_private/config.php`.
5. Extract `_EXTRACT_TO_PUBLIC_assets.rar` supaya wujud `assets/js/` dalam folder public.
6. Buka `https://domain/rpionlinebaru/diagnose-commercial.php`.
7. Jika OK, buka `https://domain/rpionlinebaru/`.

## Untuk database sedia ada

Buka `setup-commercial-db.php` sekali sahaja selepas backup. Script ini akan semak kewujudan table/column/index sebelum create.

## Notifikasi email developer (pilihan)

Biarkan bahagian ini kosong/dibuang dahulu jika email hosting belum disahkan. Sistem tetap boleh login dan berfungsi tanpa tetapan email ini.

Jika mahu aktifkan email automatik apabila subscriber hantar bukti bayaran atau LO, tambah tetapan ini dalam `rpi_private_v2/config.php`. Pastikan baris sebelum snippet ini ada koma:

```php
'developer_notify_email' => 'email-developer@domainanda.com',
'notification_email_from' => 'no-reply@domainanda.com',
'notification_email_from_name' => 'RPI Online',
'notification_app_url' => 'https://domainanda.com/rpionline/',
```

Sistem akan hantar email apabila rekod bayaran berada dalam status `Menunggu Semakan Bayaran` atau `LO Diterima`. Setiap rekod bayaran/LO hanya dihantar sekali dan direkod dalam table `rpi_developer_notifications`.

Contoh ralat biasa dalam `config.php`: baris sebelum tetapan email tiada koma, contohnya `'debug_errors' => false` terus diikuti baris baru. Jika config tersilap syntax, seluruh API termasuk login akan gagal.

## Penambahbaikan dalam api.php

- Config loader lebih fleksibel untuk Laragon dan cPanel.
- Fix `Array to string conversion` dalam merge RPI.
- Tambah MySQL named lock pada `/api/db/save` supaya simpan serentak disusun giliran.
