<?php

namespace App\Http\Controllers\Admin;

use App\Facades\Services\UserService;
use App\Http\Controllers\Controller;
use App\Http\Requests\UserDelete;
use App\Libs\Transformers\UserFullTransformer;
use App\Models\User;
use Illuminate\Http\Request;
use Spatie\Fractal\Facades\Fractal;

class FrontendUserController extends Controller
{

    public function getIndex()
    {
        return view('admin.pages.frontend_users.list');
    }

    public function postList(Request $request)
    {
        $page = $request->input("current");
        $rowCount = $request->input("rowCount");
        $sort = $request->input("sort");
        $search = $request->input("searchPhrase");

        if (!empty($page)) {
            $result = UserService::getUserGridList($page, $rowCount, $sort, $search);
            $result["rows"] = Fractal::collection($result["rows"])
                ->transformWith(new UserFullTransformer())->toArray();
            return response()->json($result);
        } else {
            $users = User::all();
            return response()->json(Fractal::collection($users)
                ->transformWith(new UserFullTransformer())->toArray());
        }
    }

    public function postDelete(UserDelete $request)
    {
        $data = $request->validated();
        $user = User::find($data['id']);

        if(!empty($user)){
            $user->delete();
        }

        return response()->json(["success" => true]);
    }
}
