PANDUAN SETUP — STUDIO KONTEN PRODUK (dengan Login & Edit AI)
================================================================

Sekarang aplikasi ini bukan cuma HTML/JS statis lagi — ada bagian
server (PHP + MySQL) untuk sistem login staf dan fitur "Edit dengan AI"
(Gemini & Grok). Ikuti langkah-langkah ini SEKALI di awal.


LANGKAH 1 — Upload semua file
------------------------------
Upload SEMUA isi folder ini ke public_html/editproduk di hosting kamu
(timpa file lama). Pastikan struktur foldernya seperti ini:

  editproduk/
    index.php
    login.php
    logout.php
    setup.php
    users.php
    css/
    js/
    includes/   (config.php, db.php, auth.php, settings.php)
    api/        (ai_edit.php)
    sql/        (install.sql)


LANGKAH 2 — Import database
-----------------------------
INSTALL BARU (belum pernah import sql/install.sql sama sekali):
1. Buka cPanel > phpMyAdmin.
2. Pilih database kamu (pxgrlacf_editproduk).
3. Klik tab "Import" > pilih file sql/install.sql > klik "Go".
   Ini akan membuat 2 tabel: "users" (akun login, sudah termasuk kolom
   "credits" buat sistem kredit AI) dan "ai_usage_log" (catatan
   pemakaian AI).

SUDAH PERNAH INSTALL SEBELUMNYA (tabel "users" sudah ada, misalnya
kamu sudah punya akun admin yang bisa dipakai login):
1. Buka cPanel > phpMyAdmin > pilih database kamu > tab Import.
2. Pilih file sql/migrate_add_credits.sql (BUKAN install.sql lagi) >
   klik "Go". Ini menambah kolom "credits" ke tabel "users" yang sudah
   ada, dan otomatis kasih 500 kredit ke akun admin yang sudah ada.
3. Import lagi (tab Import > pilih file > Go) file sql/migrate_add_settings.sql.
   Ini membuat tabel baru "app_settings", dipakai buat halaman "Pengaturan
   API AI & Kredit" (supaya API key & pengaturan kredit bisa diubah lewat
   web, tidak perlu edit includes/config.php lagi).
   JANGAN import ulang install.sql kalau tabelnya sudah ada — cukup
   2 file migrate di atas saja.


LANGKAH 3 — Isi includes/config.php (database WAJIB lewat sini; API key BOLEH lewat web)
------------------------------------------------------------------------------------------
PENTING soal DB_PASS: baris ini SELALU harus diisi manual di includes/config.php,
tidak bisa lewat halaman web (karena aplikasi butuh nyambung ke database dulu
sebelum bisa baca pengaturan apa pun dari database). Kalau kamu lihat error
"Access denied for user ... (using password: YES)", itu tandanya baris DB_PASS
di includes/config.php isinya salah/ke-reset — cek & perbaiki baris itu dulu
sebelum lanjut.

KALAU INI INSTALL BARU: buka includes/config.php lewat File Manager >
Edit, lalu isi:

  DB_PASS          -> password database MySQL kamu (bukan password
                       cPanel) — kalau lupa, buat ulang passwordnya di
                       cPanel > MySQL Databases > "Manage User Privileges"
                       atau bagian "Add User".
  GEMINI_API_KEY, XAI_API_KEY, AI_CREDIT_COST_PER_EDIT, DEFAULT_NEW_USER_CREDITS
                    -> boleh dibiarkan placeholder di sini. Cara yang lebih
                       gampang & AMAN adalah isi lewat halaman "Kelola Akun"
                       > "⚙️ Pengaturan API AI & Kredit" setelah login sebagai
                       admin (lihat Langkah 5 & 6) — tidak perlu buka File
                       Manager lagi tiap kali mau ganti API key.
  ADMIN_INITIAL_CREDITS    -> kredit awal akun admin pertama (default 500),
                       cuma dipakai sekali waktu setup.php dijalankan.

KALAU KAMU SUDAH PUNYA includes/config.php YANG SUDAH JALAN (misalnya
DB_PASS sudah diisi sebelumnya): JANGAN timpa file itu dengan file baru
dari paket ini — cukup pastikan DB_PASS tetap sama seperti sebelumnya.
Kalau belum pernah ada, TAMBAHKAN 3 baris berikut di bagian bawah file
lama kamu (lewat File Manager > Edit), lalu simpan:

  define('AI_CREDIT_COST_PER_EDIT', 1);
  define('DEFAULT_NEW_USER_CREDITS', 20);
  define('ADMIN_INITIAL_CREDITS', 500);

Kalau file lama kamu masih punya baris "define('AI_DAILY_LIMIT_PER_USER', ...)"
dari versi sebelumnya, baris itu boleh dihapus (sudah tidak dipakai lagi),
tapi tidak masalah juga kalau dibiarkan.

Untuk API key (GEMINI_API_KEY / XAI_API_KEY), sekarang TIDAK WAJIB diisi di
file ini sama sekali — bisa langsung ditempel lewat halaman "Kelola Akun" di
aplikasi (lihat Langkah 6). Kalau tetap mau isi di sini juga boleh, nanti
nilai dari halaman web yang diutamakan.


LANGKAH 4A — Dapatkan API key Gemini (Google)
------------------------------------------------
1. Buka https://aistudio.google.com/apikey, login pakai akun Google.
2. Klik "Create API key" (kalau baru pertama kali, biasanya otomatis
   dibuatkan satu setelah menyetujui Terms of Service).
3. PENTING: fitur edit gambar (Nano Banana / Gemini Image) itu BERBAYAR,
   tidak ada jatah gratis. Pastikan billing/kartu pembayaran sudah
   diaktifkan di Google Cloud Console yang terhubung ke project API
   key kamu, kalau belum, edit gambar akan gagal dengan error dari
   Google.
4. Salin API key-nya. Cara paling gampang: tempel lewat halaman "Kelola
   Akun" > "⚙️ Pengaturan API AI & Kredit" > kolom Gemini > klik Simpan
   (lihat Langkah 6). Bisa juga ditempel ke GEMINI_API_KEY di
   includes/config.php kalau lebih suka begitu.
5. Estimasi biaya: sekitar $0.13 (~Rp2.000) per gambar ukuran standar,
   lebih mahal untuk resolusi 4K.


LANGKAH 4B — Dapatkan API key Grok (xAI)
---------------------------------------------
1. Buka https://console.x.ai, daftar/login.
2. Isi kredit/billing dulu (wajib, xAI tidak punya jatah gratis untuk
   API) di halaman Billing.
3. Buka halaman "API Keys", klik buat key baru.
4. Salin API key-nya. Tempel lewat halaman "Kelola Akun" > "⚙️ Pengaturan
   API AI & Kredit" > kolom xAI/Grok > klik Simpan (lihat Langkah 6).
   Bisa juga ditempel ke XAI_API_KEY di includes/config.php.


LANGKAH 5 — Buat akun admin pertama
--------------------------------------
1. Buka https://domainmu.com/editproduk/setup.php di browser.
2. Isi username & password untuk akun admin pertama, submit.
3. Setelah berhasil, HAPUS file setup.php dari hosting (lewat File
   Manager) supaya tidak bisa dipakai orang lain untuk bikin akun.


LANGKAH 6 — Tambah akun staf & kelola kredit (opsional)
-------------------------------------------------------
1. Login pakai akun admin di https://domainmu.com/editproduk/
2. Klik tombol "Kelola Akun" di pojok kanan atas.
3. Isi username, password, role (staff/admin), dan kredit awal untuk
   tiap orang yang boleh pakai aplikasi ini, klik "+ Tambah Akun".
   Staf bisa pakai semua fitur termasuk edit AI (sesuai sisa kredit
   akunnya masing-masing), tapi cuma admin yang bisa buka halaman
   "Kelola Akun".
4. Kalau kredit seorang staf/akun sudah habis, buka lagi "Kelola Akun",
   cari akunnya, isi kolom angka di sebelah tombol "Ubah Kredit" (angka
   positif menambah, misalnya 50; angka negatif mengurangi, misalnya
   -10), lalu klik "Ubah Kredit".
5. Di bagian bawah halaman "Kelola Akun" ada "⚙️ Pengaturan API AI & Kredit":
   - Tempel API key Gemini/xAI di kolomnya masing-masing > klik "Simpan".
   - Klik "Cek" buat tes apakah key-nya valid (aplikasi akan coba konek
     langsung ke Gemini/xAI dan kasih tahu hasilnya).
   - Klik "Hapus" untuk membatalkan key yang disimpan lewat sini (aplikasi
     otomatis balik pakai nilai di includes/config.php kalau ada).
   - Di bagian "Kredit" bisa atur biaya kredit per edit AI, dan kredit awal
     default untuk akun staf baru — tanpa perlu edit includes/config.php.


LANGKAH 7 — Selesai, mulai pakai
------------------------------------
Buka https://domainmu.com/editproduk/ , login, dan mulai edit produk.
Bagian "6. Edit dengan AI" di sidebar: klik dulu produk/elemen di
canvas, tulis instruksi (misalnya "buat berlian lebih berkilau, ganti
background jadi ruangan mewah"), pilih Gemini atau Grok, klik
"Terapkan AI ke Objek Terpilih". Prosesnya 10-30 detik.


CATATAN PENTING SOAL BIAYA & KEAMANAN
========================================
- Setiap klik "Terapkan AI" = 1 kali panggilan API berbayar ke Gemini
  atau Grok, dipotong dari kredit/billing akun Google/xAI kamu. Ini
  alasan kenapa fitur ini digembok di belakang login DAN sistem kredit.
- Sistem kredit: tiap akun (admin/staf) punya saldo kredit sendiri
  (kolom "credits" di tabel users). Setiap kali "Terapkan AI" berhasil,
  saldo dipotong sebanyak AI_CREDIT_COST_PER_EDIT (default 1). Kalau
  saldo kurang dari itu, aplikasi menolak dan minta akun tersebut
  ditambah kreditnya dulu oleh admin. Kalau panggilan ke Gemini/Grok
  GAGAL (error dari providernya), kredit TIDAK dipotong.
- Admin bisa menambah atau mengurangi kredit akun mana pun, dan
  mengganti API key Gemini/xAI, kapan saja lewat halaman "Kelola Akun"
  (users.php) > "⚙️ Pengaturan API AI & Kredit" — tanpa perlu buka File
  Manager atau edit includes/config.php. Ini menggantikan sistem "batas
  harian per akun" (AI_DAILY_LIMIT_PER_USER) versi sebelumnya — kalau
  kamu upgrade dari versi lama, ikuti Langkah 2 & 3 di atas (bagian
  "SUDAH PERNAH INSTALL SEBELUMNYA") untuk migrasi.
- includes/config.php berisi password database & API key — sudah
  diproteksi lewat includes/.htaccess supaya tidak bisa dibuka langsung
  dari browser, tapi tetap jangan dibagikan filenya ke orang lain.
- Fitur hapus background, ganti background, watermark, dan export TETAP
  gratis & jalan di browser — hanya "Edit dengan AI" yang berbayar,
  butuh login, dan memotong kredit.


TROUBLESHOOTING
==================
- "Gagal konek ke database" / "Access denied for user ... (using password: YES)"
  -> ini SELALU soal baris DB_PASS di includes/config.php, bukan soal API
  key atau kredit. Penyebab paling sering: file includes/config.php ke-timpa
  (misalnya waktu upload ulang semua file) sehingga DB_PASS balik jadi
  tulisan placeholder seperti "ISI_PASSWORD_DATABASE_KAMU". Buka lagi file
  itu, pastikan DB_PASS berisi password database asli kamu, bukan
  placeholder. Kalau lupa passwordnya, reset di cPanel > MySQL Databases.
- Error soal kolom "app_settings" tidak ditemukan (Unknown table 'app_settings')
  -> database kamu belum dimigrasi, jalankan sql/migrate_add_settings.sql
  lewat phpMyAdmin (lihat Langkah 2).
- Edit AI selalu gagal dengan error dari Gemini/Grok -> kemungkinan API
  key salah, billing belum aktif, atau bentuk API-nya sudah berubah
  (Gemini & xAI kadang update API mereka). Baca pesan error yang
  muncul di aplikasi, biasanya menyebutkan alasannya langsung dari
  Google/xAI.
- Lupa hapus setup.php dan khawatir disalahgunakan -> file ini otomatis
  menolak dipakai lagi begitu ada 1 akun saja di database, tapi tetap
  lebih aman dihapus.
- "Kredit kamu tidak cukup" saat klik Terapkan AI -> minta admin buka
  "Kelola Akun" dan tambah kredit akun tersebut lewat tombol "Ubah Kredit".
- Error soal kolom "credits" tidak ditemukan (Unknown column 'credits') ->
  database kamu belum dimigrasi, jalankan sql/migrate_add_credits.sql
  lewat phpMyAdmin (lihat Langkah 2).
