<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\Country;
use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;

class ShippingCountryController extends Controller
{
    public function index(Request $request)
    {
        $query = Country::query();

        if ($request->filled('search')) {
            $search = $request->string('search')->trim();
            $query->where(function ($q) use ($search) {
                $q->where('name', 'like', "%{$search}%")
                    ->orWhere('code', 'like', "%{$search}%");
            });
        }

        if ($request->filled('status')) {
            $status = $request->boolean('status');
            $query->where('status', $status);
        }

        $countries = $query
            ->orderByDesc('status')
            ->orderBy('name')
            ->paginate(25)
            ->withQueryString();

        return view('admin.shipping.countries.index', [
            'countries' => $countries,
            'search' => $request->input('search', ''),
            'status' => $request->input('status', ''),
        ]);
    }

    public function updateStatus(Request $request, Country $country): RedirectResponse
    {
        $validated = $request->validate([
            'status' => 'required|boolean',
        ]);

        $country->update(['status' => (bool) $validated['status']]);

        return back()->with('success', 'Country status updated.');
    }
}
