<?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 MarketByAmountTab extends Component
{
    public $marketsByAmount;
    public $sortField;
    public $sortOrder;
    public $verif;
    public $name;

    public function __construct(ChartsDataController $controller, DataCheckerController $dataCheckerService, CartographieController $cartographieController)
    {
        $this->marketsByAmount = $controller->retrieveMarketByAmountTab();
        $this->sortField = request()->input('sort_by', 'libelle_marche');
        $this->sortOrder = request()->input('sort_order', 'asc');
        $this->verif = $dataCheckerService->checkIfOneDataIsNull($this->marketsByAmount['allData']);
        $this->name = $cartographieController->getAllNameOfCharts()['marketByAmountTabName'];
    }

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