<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

class SetLocale
{
    public function handle(Request $request, Closure $next): Response
    {
        $locale = $request->session()->get('locale')
            ?? $request->user()?->language
            ?? setting('default_language', config('app.locale', 'ar'));

        if (! in_array($locale, ['ar', 'en'], true)) {
            $locale = 'ar';
        }

        app()->setLocale($locale);
        $request->session()->put('locale', $locale);

        view()->share('locale', $locale);
        view()->share('dir', $locale === 'ar' ? 'rtl' : 'ltr');
        view()->share('isRtl', $locale === 'ar');

        return $next($request);
    }
}
