-- laporan_migration.sql -- Jalankan script ini di phpMyAdmin untuk database "bansos_gis" -- Fitur: Pelaporan Warga oleh Kontributor & Koordinator -- Tambah kolom no_telp ke tabel users jika belum ada ALTER TABLE `users` ADD COLUMN IF NOT EXISTS `no_telp` VARCHAR(20) NULL DEFAULT NULL COMMENT 'Nomor telepon/WA pengguna'; -- Buat tabel laporan_warga CREATE TABLE IF NOT EXISTS `laporan_warga` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `rumah_warga_id` INT(11) NOT NULL COMMENT 'Warga yang dilaporkan', `pelapor_id` INT(11) NOT NULL COMMENT 'User yang membuat laporan', `koordinator_ibadah_id` INT(11) NULL DEFAULT NULL COMMENT 'Rumah ibadah pelapor (jika koordinator)', `jenis_laporan` ENUM( 'data_tidak_sesuai', 'warga_mampu', 'warga_pindah', 'warga_meninggal', 'data_ganda', 'lainnya' ) NOT NULL DEFAULT 'data_tidak_sesuai' COMMENT 'Jenis ketidaksesuaian yang dilaporkan', `deskripsi` TEXT NOT NULL COMMENT 'Penjelasan detail dari pelapor', `prioritas` ENUM('rendah', 'sedang', 'tinggi') NOT NULL DEFAULT 'sedang', `status` ENUM( 'pending', 'ditinjau', 'diproses', 'selesai', 'ditolak' ) NOT NULL DEFAULT 'pending' COMMENT 'Status penanganan laporan', `catatan_admin` TEXT NULL DEFAULT NULL COMMENT 'Catatan atau keputusan admin', `ditugaskan_ke` VARCHAR(150) NULL DEFAULT NULL COMMENT 'Nama petugas yang ditugaskan cek lapangan', `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(), `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP(), PRIMARY KEY (`id`), KEY `fk_laporan_warga` (`rumah_warga_id`), KEY `fk_laporan_pelapor` (`pelapor_id`), KEY `idx_laporan_status` (`status`), KEY `idx_laporan_prioritas` (`prioritas`), CONSTRAINT `fk_laporan_warga` FOREIGN KEY (`rumah_warga_id`) REFERENCES `rumah_warga` (`id`) ON DELETE CASCADE, CONSTRAINT `fk_laporan_pelapor` FOREIGN KEY (`pelapor_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;