<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Models\IotMode;
use App\Observers\IotModeObserver;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\Facades\Request; // <-- Tambahkan ini untuk deteksi host

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     */
    public function register(): void
    {
        //
    }

    /**
     * Bootstrap any application services.
     */
    public function boot(): void
    {
        /**
         * 1. DINAMIS URL & HTTPS (SOLUSI DUA URL: LOCAL & NGROK)
         * Logika ini mendeteksi jika aplikasi dibuka via Ngrok, maka otomatis 
         * menggunakan HTTPS dan URL Ngrok. Jika dibuka via Localhost, tetap HTTP.
         */
        $host = Request::header('host');

        if (str_contains($host, 'ngrok-free.dev')) {
            // Jika akses lewat Ngrok
            URL::forceScheme('https');
            URL::forceRootUrl("https://" . $host);
        } else {
            // Jika akses lewat Localhost / IP 127.0.0.1
            URL::forceScheme('http');
            // Jika Anda menggunakan port khusus (misal 8000), ini akan otomatis mengikutinya
            URL::forceRootUrl("http://" . $host);
        }

        /**
         * 2. REGISTRASI OBSERVER IOT MODE
         * Memastikan perubahan status pada tabel IotMode terpantau untuk sinkronisasi hardware
         */
        if (class_exists(IotMode::class)) {
            IotMode::observe(IotModeObserver::class);
        }
    }
}

