<?php

namespace App\View\Components\Charts;

use App\Http\Controllers\Cartograhie\CartographieController;
use App\Http\Controllers\Cartograhie\ChartsData\ChartsDataController;
use App\Http\Controllers\Cartograhie\DataChecker\DataCheckerController;
use Illuminate\View\Component;

class DetailsOfExpensesTab extends Component
{
    private $detailsOfExpenses;
    private $sortField;
    private $sortOrder;
    private $data;
    private $name;

    public function __construct(ChartsDataController $controller, DataCheckerController $dataCheckerService, CartographieController $cartographieController)
    {
        $this->detailsOfExpenses = $controller->retrieveDetailsOfExpenses();
        $this->sortField = request()->input('sort_by', 'date');
        $this->sortOrder = request()->input('sort_order', 'asc');
        $this->data = $dataCheckerService->checkIfOneDataIsNull($this->detailsOfExpenses['allData']);
        $this->name = $cartographieController->getAllNameOfCharts()['detailsOfExpensesName'];
    }

    public function render()
    {
        $filters = request()->except('sort_by', 'sort_order', 'page');
        return view('components.charts.detailsOfExpensesTab', [
            'detailsOfExpenses' => $this->detailsOfExpenses,
            'sortField' => $this->sortField,
            'sortOrder' => $this->sortOrder,
            'filters' => $filters,
            'data' => $this->data,
            'name' => $this->name
        ]);
    }
}
