<?php

namespace Modules\ProjetAchat\MenuContextuel;

use Helpers\Outil\MenuContextuel;
use Helpers\Outil\Roles;
use Helpers\Outil\Sql;
use Helpers\Trad\ITrad;
use Helpers\Trad\Trad;
use Skeleton\Router;

class GestionModeleMenuContextuel extends MenuContextuel
{
    /**
     * @var array<mixed> $droit
     */
    public $droit;

    public function __construct(\PDO $pdo, Router $router, ITrad $trad)
    {
        parent::__construct($pdo, $router, $trad);

        $this->droit = [
            'DOA_MOD_CM' => Roles::droitsUtilisateur($this->pdo, 'DOA_MOD_CM', $_SESSION["Session_Login"]),
            'DOA_MOD_TT' => Roles::droitsUtilisateur($this->pdo, 'DOA_MOD_TT', $_SESSION["Session_Login"]),
            'DOA_IMP_MO' => Roles::droitsUtilisateur($this->pdo, 'DOA_IMP_MO', $_SESSION["Session_Login"]),
            'DOA_DOA_CM' => roles::droitsUtilisateur($this->pdo, 'DOA_DOA_CM'),
        ];
    }

    /**
     * @param array<mixed> $projet
     * @return array<mixed>
     */
    public function generate($projet, bool $gestion = true)
    {
        $menuContextuel = [];

        $droitAcces = ($this->droit['DOA_MOD_CM'] && $projet['PROPRIETAIRE'] == $_SESSION["Session_Login"]) || $this->droit['DOA_MOD_TT'];

        $divRfresh = '';
        if ($gestion) {
            $divRfresh = 'page';
        } else {
            $divRfresh = 'tableRefresh';
        }

        $menuContextuel['listePrincipal'][] = [
            'icone' => 'pictoList',
            'lien' => $this->router->generateUri('ProjetAchat.Event.suivi', ['id' =>  $projet['ID']]),
            'libelle' => $this->trad->t('Suivi'),
        ];

        if ($droitAcces) {
            $menuContextuel['listePrincipal'][] = [
                'icone' => 'pictocreate',
                'lien' => $this->router->generateUri('ProjetAchat.ModeleProjet.createEdit', ['type'=>'D', 'idProjet' => $projet['ID'], 'typeSource' => 'M']),
                'libelle' => $this->trad->t('Créer un projet'),
            ];

            if ($this->droit['DOA_IMP_MO']) {
                $menuContextuel['listeSecondaire'][] = [
                    'lien' => $this->router->generateUri('ProjetAchat.ModeleProjet.createEdit', ['type'=>'M', 'idProjet' => $projet['ID'], 'typeSource' => 'M']),
                    'libelle' => $this->trad->t('Dupliquer'),
                ];
            }
    
            $menuContextuel['listeSecondaire'][] = [
                'lien' => $this->router->generateUri('ProjetAchat.ModeleProjet.createEdit', ['type' => 'M','idProjet' =>  $projet['ID']]),
                'libelle' => $this->trad->t('Modifier'),
            ];
    
            $menuContextuel['listeSecondaire'][] = [
                'lien' => '',
                'libelle' => $this->trad->t('Supprimer'),
                'lienJs' => $this->popupConfirm(
                    false,
                    $this->router->generateUri('ProjetAchat.ModeleProjet.delete', ['type'=>'M', 'idProjet' => $projet['ID']]),
                    $this->trad->t('Etes-vous sûr de vouloir supprimer le modèle ?'),
                    false,
                    $divRfresh=='tableRefresh'? 'redirect':$divRfresh,
                    '',
                    false,
                    'filtre_projetAchat'
                ),
            ];
        }

        return $menuContextuel;
    }
}
