<?php

namespace App\Controllers;

use App\Models\WifiQrCodeModel;
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Writer\PngWriter;

class WifiQrCodeController extends BaseController
{
    protected $wifiQrCodeModel;

    public function __construct()
    {
        $this->wifiQrCodeModel = new WifiQrCodeModel(); // เรียกใช้ Model
    }

    /**
     * แสดงหน้า Form สำหรับสร้าง QR Code
     */
    public function index()
    {
        return view('wifi/create');
    }

    /**
     * สร้าง QR Code และบันทึกข้อมูล
     */
    public function generate()
    {
        $ssid = $this->request->getPost('ssid');
        $password = $this->request->getPost('password');
        $encryption = $this->request->getPost('encryption');

        // สร้างข้อความสำหรับ QR Code
        $wifiText = "WIFI:S:$ssid;T:$encryption;P:$password;;";

        // สร้าง QR Code
        $qrCode = new QrCode($wifiText);
        $writer = new PngWriter();
        $fileName = uniqid() . '.png';
        $filePath = WRITEPATH . 'uploads/' . $fileName;

        // บันทึกไฟล์ QR Code
        $writer->write($qrCode)->saveToFile($filePath);

        // บันทึกข้อมูลลงฐานข้อมูล
        $this->wifiQrCodeModel->saveQrCode([
            'user_id' => null, // แก้ไขถ้ามีระบบผู้ใช้
            'ssid' => $ssid,
            'password' => $password,
            'encryption_type' => $encryption,
            'qr_code_path' => $fileName
        ]);

        // ส่งผลลัพธ์กลับ
        return $this->response->setJSON([
            'status' => 'success',
            'qrCodeUrl' => base_url('uploads/' . $fileName)
        ]);
    }

    /**
     * แสดงประวัติการสร้าง QR Code
     */
    public function history()
    {
        // ดึงข้อมูลจากฐานข้อมูล
        $history = $this->wifiQrCodeModel->findAll(); // ถ้ามีระบบผู้ใช้สามารถกรองตาม user_id

        return view('wifi/history', ['history' => $history]);
    }
}
