query($statement); } $adminPassword = getenv('ADMIN_PASSWORD') ?: 'admin123'; $adminHash = password_hash($adminPassword, PASSWORD_DEFAULT); $adminResult = $db->query("SELECT password FROM users WHERE username = 'admin' LIMIT 1"); $adminAction = 'unchanged'; if ($adminResult->num_rows === 0) { $stmt = $db->prepare("INSERT INTO users (username, password) VALUES ('admin', ?)"); $stmt->bind_param('s', $adminHash); $stmt->execute(); $adminAction = 'created'; } else { $currentHash = (string) $adminResult->fetch_assoc()['password']; if (!password_verify($adminPassword, $currentHash)) { $stmt = $db->prepare("UPDATE users SET password = ? WHERE username = 'admin'"); $stmt->bind_param('s', $adminHash); $stmt->execute(); $adminAction = 'updated'; } } $seededSpbu = 0; $count = (int) $db->query('SELECT COUNT(*) AS total FROM spbu')->fetch_assoc()['total']; if ($count === 0) { $seed = $db->prepare( "INSERT INTO spbu (nama, no_spbu, status, latitude, longitude) VALUES (?, ?, ?, ?, ?)" ); $rows = [ ['SPBU Sudirman', '64.751.01', '24jam', -0.0260000, 109.3425000], ['SPBU Ahmad Yani', '64.751.02', 'tidak', -0.0310000, 109.3218000], ['SPBU Sutan Syahrir', '64.751.03', '24jam', -0.0195000, 109.3612000], ]; foreach ($rows as [$name, $number, $status, $latitude, $longitude]) { $seed->bind_param('sssdd', $name, $number, $status, $latitude, $longitude); $seed->execute(); $seededSpbu++; } } return [ 'database' => DB_NAME, 'admin_username' => 'admin', 'admin_password_source' => getenv('ADMIN_PASSWORD') ? 'ADMIN_PASSWORD env' : 'default', 'admin_action' => $adminAction, 'seeded_spbu' => $seededSpbu, ]; }