<?php

namespace Modules\Fournisseur\Rules;

use Helpers\Outil\Roles;
use Psr\Http\Message\ServerRequestInterface;
use Entity\Model\Fourniss;
use Helpers\Outil\Sql;
use Modules\Fournisseur\Repository\GestFourniss;

class Main
{
    protected ServerRequestInterface $request;
    protected \PDO $pdo;
        
    /**
     * __construct
     *
     * @param  ServerRequestInterface $request
     * @return void
     */
    public function __construct(ServerRequestInterface  $request, \PDO $pdo)
    {
        $this->request  = $request;
        $this->pdo      = $pdo;
    }
    
    /**
     * init
     *
     * @return bool
     */
    public function init() : bool
    {
        /*if (!Roles::droitsUtilisateur($this->pdo, 'OX_GESTFOU')) {
            return false;
        }*/

        return true;
    }

    public function generateDroitVisuFrs(string $id) : bool
    {
        // TODO : do not request Fourniss twice during the same request
        $fournis = new Fourniss($this->pdo);
        $fournis = $fournis->find($id);

        $accessVisu = true;
        if (sql::toBool($fournis['PROSPECT'] ?? false)) {
            if (!roles::droitsUtilisateur($this->pdo, 'HA_PRO_VIS')) {
                $accessVisu = false;
            }
        } else {
            if (!roles::droitsUtilisateur($this->pdo, 'HA_FOU_VIS')) {
                $accessVisu = false;
            }
        }

        $sql = new GestFourniss($this->pdo);
        $retour = $sql->parametrageFournisseurActif();
        
        if ($retour) {
            $paramActif = true;
        } else {
            $paramActif = false;
        }

        if (!$accessVisu && !$paramActif) {
            return false;
        }

        return true;
    }

    public function generateDroitCreate() : bool
    {
        if (!Roles::droitsUtilisateur($this->pdo, 'HA_PRO_CRE') && !Roles::droitsUtilisateur($this->pdo, 'HA_FOU_CRE')) {
            return false;
        }

        return true;
    }
}
