Buatkan desain database Supabase (PostgreSQL) yang PRODUCTION-READY untuk aplikasi berikut:
[ JELASKAN APLIKASI DI SINI ]
(contoh: aplikasi keuangan kas, akuntansi pesantren, inventory, akademik, dll)
KETENTUAN WAJIB:
1. Gunakan Supabase PostgreSQL
2. Tidak menggunakan tabel admin khusus
→ langsung gunakan auth.users / auth.email() untuk RLS
3. Sertakan secara LENGKAP dan TERURUT:
- create extension (jika perlu)
- ERD (penjelasan relasi antar tabel)
- create table (UUID, FK, constraint)
- index yang relevan
- views laporan (rekap, saldo, dsb jika relevan)
- function & trigger (audit log, validasi, lock data, dll)
- Row Level Security (RLS):
• public read (jika ada)
• admin write berbasis auth.email()
- grant (anon & authenticated)
4. Pastikan:
- Data public dan admin KONSISTEN (tidak beda hasil)
- Audit log tidak bisa diedit / dihapus
- Delete data utama tidak gagal karena FK audit
- Trigger aman terhadap RLS Supabase
5. Gunakan BEST PRACTICE:
- UUID (gen_random_uuid)
- on delete set null / cascade sesuai kebutuhan
- constraint & check
- view read-only
6. Output HARUS:
- SQL FINAL
- Sudah diurutkan dari atas ke bawah
- Siap COPAS tanpa error
- Diberi komentar per section
ROLE:
- Admin tunggal via email: [ISI EMAIL ADMIN]
- Public hanya read-only
Jika ada keputusan desain penting (misal saldo awal, carry over, lock periode, soft delete),
tolong jelaskan singkat alasannya di akhir.
Buatkan desain database Supabase (PostgreSQL) untuk aplikasi keuangan kas pesantren.
Fitur:
- Multi periode (tahun)
- Saldo awal carry over otomatis
- Transaksi pemasukan & pengeluaran
- Kategori transaksi
- Rekap bulanan
- Running balance
- Audit log transaksi
- Periode bisa dikunci
Admin tunggal via email: [email protected]
Ikuti semua ketentuan best practice Supabase.
Gunakan kata-kata ini di prompt:
Dengan prompt ini, kamu akan dapat: