# ERD Summary - WebGIS Dokumen ini merangkum skema database yang dipakai aplikasi pada `sql/migrations/001_init_schema.sql` dan `webgis.sql`. ## Tabel Utama ### `users` Menyimpan akun pengguna aplikasi. Kolom penting: - `email` - `password_hash` - `name` - `organization` - `org_address` - `org_phone` - `org_proof_path` - `role` dengan nilai `manager` atau `admin` - `status` dengan nilai `pending`, `active`, `rejected`, atau `pending_verification` - `email_verified` - field verifikasi email seperti `email_verification_token_hash`, `email_verification_expires`, dan timestamp terkait - `approved_by` dan `approved_at` ### `lokasi` Menyimpan seluruh marker yang tampil di peta. Kolom penting: - `nama` - `no_telp` - `latitude` dan `longitude` - `alamat` - `jenis` - field khusus rumah seperti `nama_kk`, `rumah_status`, `members`, `monthly_income` - field bantuan seperti `assisted`, `last_assisted_at`, `assistance_notes`, `sumber_bantuan`, `bentuk_bantuan` - `photo_path` - `created_by` ### `bantuan_detail` Menyimpan detail histori bantuan per lokasi. Kolom penting: - `lokasi_id` - `tanggal_bantuan` - `pemberi_bantuan` - `catatan` - `pemberi_lokasi_id` - `jumlah` ### `migrations` Menyimpan catatan migration yang sudah dijalankan. ## Relasi - `users.approved_by` mengarah ke `users.id` - `lokasi.created_by` mengarah ke `users.id` - `lokasi.sumber_bantuan` mengarah ke `lokasi.id` - `bantuan_detail.lokasi_id` mengarah ke `lokasi.id` - `bantuan_detail.pemberi_lokasi_id` mengarah ke `lokasi.id` ## Alur Data 1. Guest melihat data publik di peta dan tabel. 2. Pengelola mendaftar, menerima kode verifikasi email, lalu akun dibuat dalam status menunggu persetujuan admin. 3. Admin menyetujui akun pengelola. 4. Pengelola yang disetujui dapat menambah dan mengubah data miliknya. 5. Admin bisa mengelola seluruh data. ## Catatan Implementasi - Database yang dipakai adalah MySQL/MariaDB. - Semua relasi foreign key dibuat agar data tetap konsisten. - Kolom bantuan dan verifikasi email disimpan langsung di tabel utama supaya alurnya sederhana untuk pengembangan berikutnya.