<?php
namespace Modules\TermeDePaiement;

use Modules\TermeDePaiement\Controller\CommandeTermPaieController;
use Skeleton\Router;
use Skeleton\Module;
use Psr\Container\ContainerInterface;
use Skeleton\Renderer\RendererInterface;
use Helpers\Parametres\Parametres;
use Modules\TermeDePaiement\Controller\TermeDePaiementController;

class TermeDePaiementModule extends Module
{

    const DEFINITIONS = __DIR__ . '/config.php';

    public function __construct(ContainerInterface $container)
    {
        $container->get(RendererInterface::class)->addPath('TermeDePaiement', __DIR__ . '/views');
        
        $router = $container->get(Router::class);

        $base_url = $container->get('baseUrl') . $container->get('TermeDePaiement.prefix');
        
        $parametres = new Parametres();
        $global = $parametres->expression_global;

        $commande   = $parametres->id_commande;
        $MODULE = $parametres->MODULE;
        
        /*terme de paiement */
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/TermeDePaiement/{id:' . $commande . '+}/liste[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.termeDePaiement');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/TermeDePaiement/{id:' . $commande . '+}/nouveauTP[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.ajoutTermeDePaiement');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/TermeDePaiement/{id:' . $commande . '+}/ajout-declenchements/{numtp:' . $commande . '+}[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.ajoutDeclenchements');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/TermeDePaiement/{id:' . $commande . '+}/ajout-declenchements-modele/{numtp:' . $commande . '+}[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.ajoutDeclenchementsModele');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/TermeDePaiement/{id:' . $commande . '+}/deleteTp/{numtp:' . $commande . '+}[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.deleteTermeDePaiement');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/TermeDePaiement/{id:' . $commande . '+}/deleteAllTp[/{critere:' . $global . '+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.deleteAllTermeDePaiement');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/TermeDePaiement/{id:' . $commande . '+}/tpDaValidationCreate[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.tpValidationCreate');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/TermeDePaiement/{id:' . $commande . '+}/update/{numtp:' . $commande . '+}[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.termeDePaiementUpdate');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/TermeDePaiement/{id:' . $commande . '+}/tpDaValidationUpdate/{numtp:' . $commande . '+}[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.tpValidationUpdate');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/TermeDePaiement/ajaxLigne/{id:' . $commande . '+}/{numtp:' . $commande . '+}[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.ajaxLigne');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/ModeleTermeDePaiement/{id:' . $commande . '+}/liste[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.listeModele');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/ModeleTermeDePaiement/{id:' . $commande . '+}/nouveau/{numtp:' . $commande . '+}', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.ajoutModeleTermeDePaiement');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/ModeleTermeDePaiement/update/{idModele:' . $commande . '+}[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.updateModeleTermeDePaiement');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/ModeleTermeDePaiement/updateModeleValidation/{idModele:' . $commande . '+}[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.modeleValidationUpdate');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/ModeleTermeDePaiement/{idModele:' . $commande . '+}/deleteModele[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.deleteModele');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/TermeDePaiement/modele/ModeleValidationCreate[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.modeleValidationCreate');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/ModeleTermeDePaiement/{idModele:' . $commande . '+}/{id:' . $commande . '+}[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.ajaxLoadModele');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/TermeDePaiement/suiviAvancementTp/{id:' . $commande . '+}[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.suiviAvancementTp');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/TermeDePaiement/ajaxSuiviAvancementTp/{id:' . $commande . '+}[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.ajaxSuiviAvancementTp');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/gestionModeleTp[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.gestionModeleTp');
        $router->get($base_url . '/{MODULE:' . $MODULE . '+}/gestionModeleTp/ligne/{idModele:' . $commande . '+}[/{critere:'.$global.'+}]', TermeDePaiementController::class, 'TermeDePaiement.TermeDePaiement.ligneModele');
    }
}
