<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Yajra\DataTables\Facades\DataTables;
use App\Models\Country;

class CountryController extends Controller
{
    public function index(Request $request)
    {   
        if ($request->ajax()) {
            // $query = Country::query()->select(sprintf('%s.*', (new Country)->table));
            $query = Country::select('*');
      
            $table = Datatables::of($query);

            $table->editColumn('id', function ($row) {
                return $row->id ? $row->id : '';
            });

            $table->editColumn('country_name', function ($row) {
                return $row->country_name ? $row->country_name : '';
            });
            
            $table->editColumn('top_level_domain', function ($row) {
                return sprintf('<img src="%s/uploads/flags/%s.png">', env('app_url'), $row->top_level_domain);
            });

            $table->editColumn('is_seller_flag', function ($row) {
                $checked = $row->is_seller_flag ? 'checked' : '';

                return sprintf('<input type="checkbox" class="toggle-flag" data-id="%s" %s data-toggle="toggle" data-on="Yes" data-off="No" data-size="sm" data-onstyle="success" data-offstyle="danger">', $row->id, $checked);
            });

            $table->editColumn('rates', function ($row) {
                return $row->rates ? $row->rates : '';
            });

            $table->rawColumns(['top_level_domain', 'image', 'is_seller_flag']);

            return $table->make(true);
        }

        return view('admin.countries.index');
    }

    public function toggleSellerFlag(Request $request, $id)
    {
        Country::where('id', $id)->update(['is_seller_flag' => $request->input('is_seller_flag')]);

        return response()->json(['message' => 'Seller flag updated successfully']);
    }
}
