<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use App\Area;
use Illuminate\Support\Facades\File;

class AreasTableSeeder extends Seeder
{
	/**
	 * Run the database seeds.
	 *
	 * @return void
	 */
	public function run()
	{
		Area::truncate();
		
		// Read data from JSON file
		$jsonPath = public_path('prefectures_data/processed_prefectures_data.json');
		$jsonData = File::get($jsonPath);
		$data = json_decode($jsonData, true);
		$position = 0;
		
		foreach ($data as $prefecture) {
			// Create prefecture record
			$prefectureArea = Area::create([
				'name'         => $prefecture['name'],
				'slug'         => $this->createSlug($prefecture['en_name']),
				'position'     => $position,
				'is_activated' => true,
				'is_deleted'   => false,
				'created_at'   => now(),
				'updated_at'   => now(),
			]);
			
			$position++;
			print "[Imported] Prefecture: {$prefecture['name']}\n";
			
			// Create records for sub-areas
			foreach ($prefecture['areas'] as $area) {
				Area::create([
					'name'         => $area['name'],
					'slug'         => $this->createSlug($area['en_name']),
					'parent_id'    => $prefectureArea->id,
					'position'     => $position,
					'is_activated' => true,
					'is_deleted'   => false,
					'created_at'   => now(),
					'updated_at'   => now(),
				]);
				
				$position++;
				print "[Imported] Area: {$area['name']}\n";
			}
		}
		
		print "[Done] Imported: {$position} items.\n";
	}
	
	/**
	 * Create slug from name
	 *
	 * @param string $name
	 * @return string
	 */
	private function createSlug($name)
	{
		return str_replace("-.-", "-", strtolower(str_replace(' ', '-', $name)));
	}
}
