$this->apiUrl, 'timeout' => 30, ]; $client = new CURLRequest($options); $response = $client->get(''); if ($response->getStatusCode() !== 200) { echo "Failed to fetch data from API. Status: " . $response->getStatusCode() . "\n"; return; } $externalData = $response->getJSON(true); if (empty($externalData)) { echo "No data found from API.\n"; return; } // Prepare data for insertion (exclude AreaGeoID to allow auto-increment) $data = []; foreach ($externalData as $row) { $data[] = [ 'AreaCode' => $row['zonecode'] ?? null, 'Class' => $row['zoneclass'] ?? null, 'AreaName' => str_replace('_', ' ', $row['zonename'] ?? ''), 'Parent' => $row['parentzoneid'] ?? null, ]; } // Insert into local database $this->db->table('areageo')->insertBatch($data); echo "Successfully seeded " . count($data) . " area geo records.\n"; } }