<?php

namespace App\Filters;

use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use CodeIgniter\Filters\FilterInterface;

use Config\Database; // Pastikan Anda sudah mengimpor kelas ini

class DatabaseSwitcher implements FilterInterface
{
    public function before(RequestInterface $request, $arguments = null)
    {
        // if (session()->get('isLoggedIn')) {
        //     $dbName = session()->get('database_name');

        //     // if ($dbName) {
        //     //     // Load konfigurasi database dari `.env`
        //     //     $dbConfig = new \Config\Database();

        //     //     // Ubah database secara dinamis
        //     //     $dbConfig->default['database'] = $dbName;


        //     //     // Mengganti koneksi database dengan yang baru
        //     //     $db = Database::connect($dbConfig);

        //     //     // Menyimpan koneksi yang baru dalam konfigurasi database
        //     //     // \Config\Database::setConnection($db);
        //     // }

        //     if (!empty($dbName) && is_string($dbName)) { // Pastikan ini string
        //         // Debugging: Lihat apakah database name benar
        //         // var_dump($dbName); exit();

        //         $db = Database::connect();
        //         $db->setDatabase($dbName);
        //     }
        // }
        if (session()->get('isLoggedIn')) {
            $dbName = session()->get('database_name');

            if (!empty($dbName)) {
                // Buat konfigurasi database baru
                $dbConfig = [
                    'DSN'      => '',
                    'hostname' => 'localhost',
                    'username' => 'jagodig1_jagodigital',
                    'password' => 'jagodigital',
                    'database' => $dbName, // Database sesuai session
                    'DBDriver' => 'MySQLi',
                    'DBPrefix' => '',
                    'pConnect' => false,
                    'DBDebug'  => (ENVIRONMENT !== 'production'),
                    'charset'  => 'utf8',
                    'DBCollat' => 'utf8_general_ci',
                    'swapPre'  => '',
                    'encrypt'  => false,
                    'compress' => false,
                    'strictOn' => false,
                    'failover' => [],
                    'port'     => 3306,
                ];

                // Koneksi baru
                $db = \Config\Database::connect($dbConfig);
            }
        }
    }
    public function after(RequestInterface $request, ResponseInterface $response, $arguments = null) {}
}
