<?php
namespace Modules\Suivi\Controller;

use Helpers\ChampsSupplementaire\ChampSupp;
use Modules\Suivi\Repository\SuiviConsultRepo;
use Modules\Suivi\Service\SuiviService;
use Skeleton\Controller\Controller;

class SuiviConsultController extends Controller
{
    public SuiviConsultRepo $SuiviConsultRepo;
    public SuiviService $serviceSuivi;
    /**
     * @var array<mixed> $parametrage
     */
    public $parametrage;

    public function init() : void
    {
        $this->SuiviConsultRepo = new SuiviConsultRepo($this->pdo, $this->router, $this->getTranslationService());

        $this->serviceSuivi     = new SuiviService($this->pdo, $this->getTranslationService());
        $this->parametrage      = $this->serviceSuivi->getParametrageSuivi();
    }

    public function ajaxDetailsAction() : string
    {
        $idDoc  = $this->request->getAttribute('idDoc');
        $source = $this->request->getAttribute('source');
        
        return $this->renderer->render('@suivi/Consultations/ajaxDetailsConsult', [
            'ligneConsult'  => $this->SuiviConsultRepo->getLiseLigne($idDoc),
            'source'        => $source,
            'idDoc'         => $idDoc,
            'idCS'          => ChampSupp::autoCompletCodeEnr($idDoc, '', 'AO_ENTET'),
            'parametrage'   => $this->parametrage,
        ]);
    }

    public function ajaxDetailsLigneAction() : string
    {
        $idDoc      = $this->request->getAttribute('idDoc');
        $idLigne    = $this->request->getAttribute('idLigne');

        return $this->renderer->render('@suivi/Consultations/ajaxDetailsLigneConsult', [
            'idCS'          => ChampSupp::autoCompletCodeEnr($idDoc, $idLigne, 'AO_LIGNE'),
            'parametrage'   => $this->parametrage,
        ]);
    }
}
