fix: Implementasi retry mechanism dan error handling untuk database connections
Deskripsi:
Menambahkan withRetry wrapper pada berbagai API routes untuk menangani transient database errors dan meningkatkan reliabilitas koneksi
Memperbaiki error handling pada notification, authentication, dan user validation endpoints dengan response 503 untuk database connection errors
Update prisma.ts dengan konfigurasi logging yang lebih baik dan datasources configuration
Menambahkan validasi input parameters pada beberapa endpoints
Update dokumentasi QWEN.md dengan commit message format dan comment standards
Update .env.example dengan connection pool settings yang lebih lengkap
File yang diubah:
src/lib/prisma.ts — Konfigurasi Prisma client & logging
src/app/api/admin/notifikasi/count/route.tsx
src/app/api/auth/mobile-login/route.ts
src/app/api/mobile/notification/[id]/route.ts
src/app/api/user-validate/route.ts
Dan 27 file API routes lainnya (penerapan withRetry secara konsisten)
QWEN.md — Dokumentasi commit & comment standards
.env.example — Database connection pool configuration
### No Issue
- prisma/schema.prisma: tambah binaryTargets debian & linux-musl untuk Docker
- src/lib/prisma.ts: pakai global singleton di dev & prod, hapus eager $connect()
- src/lib/firebase-admin.ts: lazy initialization agar tidak crash saat build time
- .env.example: lengkap dengan semua env variable + connection_limit & pool_timeout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
#### Deskripsi Umum
Telah dilakukan penambahan fitur pagination pada beberapa endpoint admin mobile untuk meningkatkan kinerja dan pengalaman pengguna saat mengakses data dalam jumlah besar.
#### File yang Diubah
1. **src/app/api/mobile/admin/job/route.ts**
- Ditambahkan parameter dari
- Diterapkan logika pagination dengan (default 10) dan
- Query telah dimodifikasi untuk mendukung pagination
2. **src/app/api/mobile/admin/event/route.ts**
- Diperbaiki definisi variabel untuk memastikan tipe data yang konsisten
- Ditambahkan default value 1 untuk parameter
- Perhitungan disesuaikan agar lebih efisien
3. **src/app/api/mobile/admin/event/[id]/participants/route.ts**
- Ditambahkan parameter dari
- Diterapkan logika pagination dengan (default 10) dan
- Query telah dimodifikasi untuk mendukung pagination
#### Tujuan Perubahan
- Meningkatkan kinerja aplikasi saat mengambil data dalam jumlah besar
- Memungkinkan pengguna untuk mengakses data secara bertahap melalui halaman-halaman
- Mengurangi beban server saat mengambil data dalam jumlah besar
- Memberikan pengalaman pengguna yang lebih baik saat mengakses data admin
#### Cara Penggunaan
Untuk menggunakan fitur pagination, cukup tambahkan parameter pada query string saat melakukan permintaan ke endpoint yang telah dimodifikasi. Contoh:
Default jumlah data per halaman adalah 10 item.
### No Issue
4
5 - Menambahkan pagination pada endpoint GET /api/mobile/donation
6 - Menambahkan pagination pada endpoint GET /api/mobile/donation/[id]/news
7 - Menambahkan pagination pada endpoint GET /api/mobile/donation/[id]/donatur
8 - Memperbaiki validasi payload pada endpoint POST /api/mobile/auth/device-tokens
9 - Menangani struktur payload yang bersarang dan langsung pada device token endpoint
10 - Menambahkan informasi pagination ke dalam respons API
### NO Issue