<?php
namespace Modules\API\APIInterne\OxaMobility\Controller;

use Entity\Model\Hastutil;
use Entity\Model\Paravrac;
use Helpers\Outil\Sql;
use SimpleXMLElement;
use Helpers\Trad\Trad;
use Skeleton\Controller\Controller;
use Helpers\Outil\Outils;
use Helpers\Fichier\Fichier;
use Modules\API\APIInterne\OxaMobility\Outil\OutilExtension;

// phpcs:ignore
class PAGE_AccessCreateDsController extends Controller
{
    public function init() : void
    {
        /** A deplacer dans absAPIcontroller plus tard car pas top */
        $trad = $this->getTranslationService();
        if ($trad instanceof Trad) {
            $trad->setLang($_SESSION['Session_Langue']);
        }
    }

    /**
     * INITAction
     * @param array<mixed> $body
     * @param array<mixed> $jwtPayload
     * @param bool $json
     *
     * @return string|false
     */
    public function INITAction(array $body = [], array $jwtPayload = [], bool $json = true)
    {
        $PARAVRAC = new Paravrac($this->pdo);
        //Oxaproc Mode réapprovionnement activé
        $paramCode = $PARAVRAC->find(["TYPEPARV" => 'PARAMSTO', "CODEPARV" => 'OXAPROC_MODE_REAPPRO_ACTIF']);
        $utilisateur = new Hastutil($this->pdo);

        // Si On est en Mode panier stock pour réapprovisionnement : Si Mode Oxaproc activé et le User est magasinier
        if ($paramCode == '0' && Sql::toBool($utilisateur->find($jwtPayload['user'])['MAGASIN'])) {
            $return['DS_CREATE_RULE'] = 1;
        } else {
            $return['DS_CREATE_RULE'] = 0;
        }

        return OutilExtension::checkExtension($body, $return, $json);
    }
}
