connect_errno) { http_response_code(500); die("Koneksi database Kemiskinan gagal ke `$host:$port`. Periksa DB_HOST, DB_PORT, DB_USER, dan DB_PASSWORD di Coolify."); } if (!$conn->select_db($dbname)) { if (!$conn->query("CREATE DATABASE IF NOT EXISTS `$dbname`") || !$conn->select_db($dbname)) { http_response_code(500); die("Database Kemiskinan belum tersedia. Buat database `$dbname` atau gunakan akun yang memiliki izin CREATE DATABASE."); } } $conn->set_charset('utf8mb4'); // Auto-create tables if not exist $conn->query("CREATE TABLE IF NOT EXISTS tb_admin ( id INT(11) AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, role VARCHAR(50) NOT NULL DEFAULT 'kemiskinan' )"); $conn->query("CREATE TABLE IF NOT EXISTS tb_tempat_ibadah ( id INT(11) AUTO_INCREMENT PRIMARY KEY, nama VARCHAR(255) DEFAULT NULL, tipe_ibadah VARCHAR(50) DEFAULT 'Masjid', latitude DOUBLE NOT NULL, longitude DOUBLE NOT NULL, radius_meter INT(11) NOT NULL, kecamatan VARCHAR(100) DEFAULT NULL, alamat TEXT DEFAULT NULL )"); $conn->query("CREATE TABLE IF NOT EXISTS tb_rumah ( id INT(11) AUTO_INCREMENT PRIMARY KEY, nama VARCHAR(255) NOT NULL, alamat TEXT DEFAULT NULL, keterangan TEXT DEFAULT NULL, latitude DOUBLE NOT NULL, longitude DOUBLE NOT NULL, jumlah_anggota INT(11) DEFAULT 1, penghasilan VARCHAR(60) DEFAULT NULL, status_kepemilikan VARCHAR(50) DEFAULT NULL, kategori_kemiskinan VARCHAR(50) DEFAULT 'Miskin', status_bantuan VARCHAR(20) DEFAULT 'belum', jenis_bantuan VARCHAR(200) DEFAULT NULL, foto_rumah VARCHAR(255) DEFAULT NULL, kecamatan VARCHAR(100) DEFAULT NULL, tahun INT(11) DEFAULT 2026, umur_kk INT(11) DEFAULT NULL, pekerjaan VARCHAR(100) DEFAULT NULL, status_rumah VARCHAR(100) DEFAULT NULL )"); $conn->query("CREATE TABLE IF NOT EXISTS tb_bantuan_history ( id INT(11) AUTO_INCREMENT PRIMARY KEY, rumah_id INT(11) NOT NULL, tanggal DATE NOT NULL, jenis_bantuan VARCHAR(200) DEFAULT NULL, keterangan TEXT DEFAULT NULL, petugas VARCHAR(100) DEFAULT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (rumah_id) REFERENCES tb_rumah(id) ON DELETE CASCADE )"); // Insert default admin if not exist $check = $conn->query("SELECT id FROM tb_admin WHERE username='admin'"); if ($check && $check->num_rows == 0) { $pw = password_hash("password", PASSWORD_DEFAULT); $conn->query("INSERT INTO tb_admin (username, password, role) VALUES ('admin', '$pw', 'kemiskinan')"); } ?>