connect_errno) { http_response_code(500); die('Koneksi database Infrastruktur gagal. Periksa environment variable database 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 Infrastruktur 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 'infrastruktur' )"); $conn->query("CREATE TABLE IF NOT EXISTS tb_spbu ( id INT(11) AUTO_INCREMENT PRIMARY KEY, nama_spbu VARCHAR(150) NOT NULL, no_wa VARCHAR(20) DEFAULT NULL, buka_24jam ENUM('Ya','Tidak') DEFAULT 'Tidak', latitude DECIMAL(11,8) NOT NULL, longitude DECIMAL(11,8) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )"); $conn->query("CREATE TABLE IF NOT EXISTS tb_jalan ( id INT(11) AUTO_INCREMENT PRIMARY KEY, nama_jalan VARCHAR(200) NOT NULL, status_jalan ENUM('Nasional','Provinsi','Kabupaten') NOT NULL, panjang_jalan VARCHAR(50) DEFAULT NULL, geojson LONGTEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )"); $conn->query("CREATE TABLE IF NOT EXISTS tb_kavling ( id INT(11) AUTO_INCREMENT PRIMARY KEY, nama_kavling VARCHAR(200) NOT NULL, status_kepemilikan ENUM('SHM','HGB','HGU','HP') NOT NULL, luas_tanah VARCHAR(50) DEFAULT NULL, geojson LONGTEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )"); // 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', 'infrastruktur')"); } ?>