<?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 DetailHierarchyMenuContextuel extends MenuContextuel
{
    /**
     * @var array<mixed> $droit
     */
    public $droit;

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

    /**
     * @param array<mixed> $task
     * @return array<mixed>
     */
    public function generateTask(string $typeObjet, string $idObjet, $task)
    {
        $menuContextuel = [];

        $menuContextuel['listeSecondaire'][] = [
            'lien' => '',
            'libelle' => $this->trad->t('Visualiser la tâche'),
            'lienJs' => $this->ajaxPopup(
                $this->router->generateUri('ProjetAchat.Task.details', ['idTask' => $task['ID_TACHE']]),
                $this->trad->t('Détails de la tâche'),
            ),
        ];

        $menuContextuel['listeSecondaire'][] = [
            'lien' => '',
            'libelle' => $this->trad->t('Modifier la tâche'),
            'lienJs' => $this->generateTab(
                $this->router->generateUri('ProjetAchat.Task.edit', ['idTask' => $task['ID_TACHE']]),
                $this->trad->t('Modifier tâche'),
                'div_donnee_externe',
            ),
        ];

        $menuContextuel['listeSecondaire'][] = [
            'lien' => '',
            'libelle' => $this->trad->t('Ajouter action'),
            'lienJs' => $this->generateTab(
                $this->router->generateUri('ProjetAchat.Action.createEdit', ['typeObjet'=> $typeObjet,'idObjet'=> $idObjet,'idTask' => $task['ID_TACHE']]),
                $this->trad->t('Ajouter action'),
                'div_donnee_externe',
            ),
        ];

        $menuContextuel['listeSecondaire'][] = [
            'lien' => '',
            'libelle' => $this->trad->t('Supprimer la tâche'),
            'lienJs' => $this->popupConfirm(
                false,
                $this->router->generateUri('ProjetAchat.Task.delete', ['idTask' => $task['ID_TACHE']]),
                $this->trad->t('Etes-vous sûr de vouloir supprimer la tâche').' '.$task['LIB'].' ?',
                false,
                'hierarchyRefresh'
            ),
        ];

        return $menuContextuel;
    }

    /**
     * @param array<mixed> $task
     * @param array<mixed> $action
     * @return array<mixed>
     */
    public function generateAction(string $typeObjet, string $idObjet, $task, $action)
    {
        $menuContextuel = [];

        $menuContextuel['listeSecondaire'][] = [
            'lien' => '',
            'libelle' => $this->trad->t('Modifier action'),
            'lienJs' => $this->generateTab(
                $this->router->generateUri('ProjetAchat.Action.createEdit', ['typeObjet' => $typeObjet,'idObjet' => $idObjet, 'idTask' => $task['ID_TACHE'], 'idAction' => $action['ID_ACTION']]),
                $this->trad->t('Modifier action'),
                'div_donnee_externe'
            ),
        ];

        $menuContextuel['listeSecondaire'][] = [
            'lien' => '',
            'libelle' => $this->trad->t('Suppression de l\'action'),
            'lienJs' => $this->popupConfirm(
                false,
                $this->router->generateUri('ProjetAchat.Action.delete', ['typeObjet' => $typeObjet,'idObjet' => $idObjet, 'idTask' => $task['ID_TACHE'], 'idAction' => $action['ID_ACTION']]),
                $this->trad->t('Etes-vous sûr de vouloir supprimer l\'action').' '.$action['LIB'].' ?',
                false,
                'hierarchyRefresh'
            ),
        ];

        $menuContextuel['listeSecondaire'][] = [
            'lien' => '',
            'libelle' => $this->trad->t('Gérer le RACI et les champs'),
            'lienJs' => $this->generateTab(
                $this->router->generateUri('ProjetAchat.Action.showDetail', ['typeObjet' => $typeObjet,'idObjet' => $idObjet, 'idAction' => $action['ID_ACTION']]),
                $this->trad->t('Détail action'),
                'div_donnee_externe'
            ),
        ];

        return $menuContextuel;
    }
}
