<?php

namespace App\Http\Controllers;

use App\Traits\Api;
use Inertia\Inertia;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;

class TimeTrackerController extends Controller
{
    use Api;
    /**
     * Display a listing of the resource.
     */
    public function index(Request $request): JsonResponse
    {

        $data = [
            'paginate' => true,
            'page' => $request->input('page', 1),
            'per_page' => $request->input('per_page', 10),
            'schema' => 'time_logs'
        ];
        // dd($data);

        $response = $this->get(config('services.kedebah.hr_service_url') . "/pim/schemas/data", $data);

        // dd($response);

        return new JsonResponse($response->object(), $response->status());
    }

    /**
     * Show the form for creating a new resource.
     */
    public function create()
    {
        //
    }

    public function query(Request $request): JsonResponse
    {
        $query = $request->all();
        // dd($query);
        $response = $this->get(config('services.kedebah.hr_service_url') . "/pim/time-management/time-sheet", $query);
        return new JsonResponse($response->object(), $response->status());
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request): JsonResponse
    {
        // Dump and die the request data to inspect it
        // dd($request->all());

        $formData = $request->all();
        $formData['pim_requests'] = true;
        $formData['schema'] = 'time_logs';
        // dd($formData);
        $response = $this->post(config('services.kedebah.pim_service_url') . "/schemas/data", $formData);
        // dd($response->json());
        return new JsonResponse($response->object(), $response->status());
    }

    /**
     * Display the specified resource.
     */
    public function show(string $id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(string $id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, string $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(string $id)
    {
        //
    }
}