<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class ConvertToJsonController extends Controller
{
    public function convert()
    {
        // Path ของโฟลเดอร์ที่เก็บไฟล์ .inc
        $formatPath = storage_path('format');
        // Path ของโฟลเดอร์ที่เก็บไฟล์ JSON
        $jsonPath = storage_path('json');

        // ตรวจสอบว่ามีโฟลเดอร์ JSON หรือไม่ ถ้าไม่มีให้สร้างขึ้นมา
        if (!file_exists($jsonPath)) {
            mkdir($jsonPath, 0777, true);
        }

        // อ่านไฟล์ทั้งหมดในโฟลเดอร์ format
        $files = scandir($formatPath);

        foreach ($files as $file) {
            if (pathinfo($file, PATHINFO_EXTENSION) === 'inc') {
                // อ่านเนื้อหาของไฟล์ .inc
                $fileContent = file_get_contents($formatPath . '/' . $file);
                
                // ตรวจสอบว่ามีข้อมูลที่ไม่ต้องการหรือไม่
                $DATABASE = '';
                $PKEY = [];
                $FORMAT = [];

                // ใช้ eval เพื่อทำให้ PHP เข้าใจเนื้อหาในไฟล์ (ควรระวัง)
                eval('?>' . $fileContent);

                // สร้าง array จากข้อมูลในไฟล์
                $data = [
                    'database' => $DATABASE,
                    'primary_key' => $PKEY,
                    'format' => $FORMAT,
                ];

                // แปลง array เป็น JSON
                $jsonContent = json_encode($data, JSON_PRETTY_PRINT);

                // เขียน JSON ลงในไฟล์ใหม่ในโฟลเดอร์ json
                $jsonFileName = pathinfo($file, PATHINFO_FILENAME) . '.json';
                file_put_contents($jsonPath . '/' . $jsonFileName, $jsonContent);
            }
        }

        return response()->json(['message' => 'Conversion complete!']);
    }
}
