# Update Fitur Email, Verifikasi Login, dan Transfer Bank

## Fitur yang ditambahkan

1. Email sistem menggunakan alamat default `admin@clusterpermata.my.id`.
2. Login memakai kode verifikasi 6 digit yang dikirim ke email akun user.
3. Pengaduan warga otomatis mengirim email ke admin dan WhatsApp ke pengurus yang punya jabatan.
4. Permohonan surat otomatis mengirim email ke admin dan WhatsApp ke pengurus yang punya jabatan.
5. Warga dapat membayar iuran melalui transfer Bank BCA, lalu mengunggah bukti transfer pada halaman **Keuangan > Lihat Iuran Saya**.
6. Bukti transfer masuk ke tabel iuran warga, bisa dilihat user dan admin/bendahara.
7. Bendahara dapat mengecek rekening lalu mengubah status pembayaran di admin. Saat status menjadi lunas, sistem mengirim ucapan terima kasih dan kwitansi ke warga melalui WhatsApp dan email.
8. Bukti pembayaran disimpan pada riwayat transaksi melalui kolom `meta`.

## Konfigurasi `.env`

Pastikan email SMTP aktif agar kode login, notifikasi admin, dan kwitansi email bisa terkirim.

```env
MAIL_MAILER=smtp
MAIL_HOST=mail.clusterpermata.my.id
MAIL_PORT=587
MAIL_USERNAME=admin@clusterpermata.my.id
MAIL_PASSWORD=ISI_PASSWORD_EMAIL_ADMIN
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=admin@clusterpermata.my.id
MAIL_FROM_NAME="Cluster Permata"
ADMIN_EMAIL=admin@clusterpermata.my.id
```

Konfigurasi rekening pembayaran:

```env
PAYMENT_BANK_NAME=BCA
PAYMENT_BANK_ACCOUNT=ISI_NOMOR_REKENING_BCA
PAYMENT_BANK_HOLDER="Cluster Permata"
```

Konfigurasi WhatsApp/Fonnte:

```env
FONNTE_ENABLED=true
FONNTE_TOKEN=ISI_TOKEN_FONNTE
WA_ADMIN_PHONE=628xxxxxxxxxx
```

## Perintah setelah upload ke server

```bash
php artisan migrate
php artisan storage:link
php artisan config:clear
php artisan route:clear
php artisan view:clear
```

Jika memakai queue untuk email di kemudian hari, aktifkan worker queue sesuai konfigurasi server.

## Catatan penting

- Agar website benar-benar bisa **menerima email** di alamat `admin@clusterpermata.my.id`, domain harus punya layanan mailbox aktif serta DNS MX/SPF/DKIM/DMARC yang benar. Kode aplikasi ini sudah mengirim email ke alamat admin tersebut, tetapi konfigurasi mailbox/domain tetap harus dilakukan di hosting/email provider.
- Untuk WhatsApp pengurus, sistem membaca data dari tabel `officials`, lalu memakai nomor pada data pengurus atau nomor warga terkait (`resident.phone`). Jika tidak ada nomor pengurus, sistem fallback ke `WA_ADMIN_PHONE`.
