<?php

namespace App\Http\Controllers;

use App\Traits\Api;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Log;

class GoalController extends Controller
{
    use Api;
    public function goalReviewData(Request $request): JsonResponse
    {
        $data = [
            'paginate' => true,
            'page' => $request->input('page', 1),
            'per_page' => $request->input('per_page', 10),
            'search_query' => $request->input('filter.search_query'),
        ];
        $response = $this->get(config('services.kedebah.hr_service_url') . "/performance/goals/reviewable", $data);
        Log::info('response' . $response);
        return new JsonResponse($response->object(), $response->status());
    }

    public function fetchGoalAssignmentData(Request $request, $id): JsonResponse
    {
        $data = [
            'paginate' => true,
            'page' => $request->input('page', 1),
            'per_page' => $request->input('per_page', 10),
            'search_query' => $request->input('filter.search_query'),
        ];
        $response = $this->get(config('services.kedebah.hr_service_url') . "/performance/goals/{$id}/assignments", $data);
        Log::info('response: ' . $response->body());
        return new JsonResponse($response->object(), $response->status());
    }

    public function submitGoalReview(Request $request): JsonResponse
    {
        // dd($request->all());
        $id = $request->input('id');
        $formData = $request->all();

        $response = $this->post(config('services.kedebah.hr_service_url') . "/performance/goals/assignments/{$id}/review", $formData);
        Log::info('response' . $response->status());

        return new JsonResponse($response->object(), $response->status());
    }
    public function goalData(Request $request): JsonResponse
    {
        $data = [
            'paginate' => true,
            'page' => $request->input('page', 1),
            'per_page' => $request->input('per_page', 10),
            'search_query' => $request->input('filter.search_query'),

        ];
        $response = $this->get(config('services.kedebah.hr_service_url') . "/performance/goals/current-staff", $data);
        Log::info('response' . $response);
        return new JsonResponse($response->object(), $response->status());
    }
    public function fetchGoalDetail(Request $request, $id): JsonResponse
    {
        $response = $this->get(config('services.kedebah.hr_service_url') . "/performance/goals/{$id}/current-staff/assignments");
        Log::info('response: ' . $response->body());
        return new JsonResponse($response->object(), $response->status());
    }

}
