<?php
namespace Modules\Suivi;

use Helpers\Parametres\Parametres;
use Modules\Suivi\Controller\SuiviBSController;
use Modules\Suivi\Controller\SuiviCdeController;
use Modules\Suivi\Controller\SuiviConsultController;
use Modules\Suivi\Controller\SuiviController;
use Modules\Suivi\Controller\SuiviDaController;
use Modules\Suivi\Controller\SuiviFacController;
use Modules\Suivi\Controller\SuiviRecepController;
use Skeleton\Router;
use Skeleton\Module;
use Psr\Container\ContainerInterface;
use Skeleton\Renderer\RendererInterface;

class SuiviModule extends Module
{
        
    const DEFINITIONS = __DIR__ . '/config.php';
    
    public function __construct(ContainerInterface $container)
    {

        $container->get(RendererInterface::class)->addPath('suivi', __DIR__ . '/views');
        $router = $container->get(Router::class);

        $parametres = new Parametres();
        $global = $parametres->expression_global;

        $urlSuivi = $container->get('baseUrl') . $container->get('Suivi.prefix');

        $router->get($urlSuivi . '/favoris/addRequete/{module:'.$global.'+}', SuiviController::class, 'Suivi.Suivi.addRequete');
        $router->get($urlSuivi . '/favoris/deleteRequete/{idRequete:' . $global . '+}', SuiviController::class, 'Suivi.Suivi.deleteRequete');

        $router->get($urlSuivi . '/global/relance/{typeRelance:'.$global.'+}/{idDoc:'.$global.'+}', SuiviController::class, 'Suivi.Suivi.relance');
        $router->get($urlSuivi . '/global/ajaxRelance', SuiviController::class, 'Suivi.Suivi.ajaxRelance');
        $router->get($urlSuivi . '/global/popupConfirmation', SuiviController::class, 'Suivi.Suivi.popupConfirmation');
        
        $router->get($urlSuivi . '/global/popup/chargeDocToPanier/{typeDoc:'.$global.'+}/{idDoc:'.$global.'+}/{action:'.$global.'+}', SuiviController::class, 'Suivi.Suivi.popChargeDocToPanier');
        $router->get($urlSuivi . '/global/ajax/chargeDocToPanier/{typeDoc:'.$global.'+}/{idDoc:'.$global.'+}/{action:'.$global.'+}/{actuFrs:'.$global.'+}', SuiviController::class, 'Suivi.Suivi.ajaxChargeDocToPanier');
        $router->get($urlSuivi . '/global/cancel', SuiviController::class, 'Suivi.Suivi.cancel');

        /** Commandes */
        $router->get($urlSuivi . '/Commandes/index[/{context:'.$global.'+}]', SuiviCdeController::class, 'Suivi.SuiviCde.liste');
        $router->get($urlSuivi . '/Commandes/details/{idDoc:'.$global.'+}/{source:'.$global.'+}[/{context:'.$global.'+}[/{signataire:'.$global.'+}]]', SuiviCdeController::class, 'Suivi.SuiviCde.ajaxDetails');
        $router->get($urlSuivi . '/Commandes/detailsLigne/{idDoc:'.$global.'+}/{idLigne:'.$global.'+}', SuiviCdeController::class, 'Suivi.SuiviCde.ajaxDetailsLigne');
        $router->get($urlSuivi . '/Commandes/send', SuiviCdeController::class, 'Suivi.SuiviCde.send');

        /** Demandes achats */
        $router->get($urlSuivi . '/DemandesAchats/index', SuiviDaController::class, 'Suivi.SuiviDa.liste');
        $router->get($urlSuivi . '/DemandesAchats/details/{idDoc:'.$global.'+}/{source:'.$global.'+}[/{context:'.$global.'+}[/{signataire:'.$global.'+}]]', SuiviDaController::class, 'Suivi.SuiviDa.ajaxDetails');
        $router->get($urlSuivi . '/DemandesAchats/detailsLigne/{idDoc:'.$global.'+}/{idLigne:'.$global.'+}', SuiviDaController::class, 'Suivi.SuiviDa.ajaxDetailsLigne');
        
        /** Receptions */
        $router->get($urlSuivi . '/Receptions/index', SuiviRecepController::class, 'Suivi.SuiviRecep.liste');
        $router->get($urlSuivi . '/Receptions/details/{idDoc:'.$global.'+}/{source:'.$global.'+}/{type:'.$global.'+}', SuiviRecepController::class, 'Suivi.SuiviRecep.ajaxDetails');
        $router->get($urlSuivi . '/Receptions/detailsLigne/{idDoc:'.$global.'+}/{idLigne:'.$global.'+}', SuiviRecepController::class, 'Suivi.SuiviRecep.ajaxDetailsLigne');
        
        /** Factures */
        $router->get($urlSuivi . '/Factures/index', SuiviFacController::class, 'Suivi.SuiviFac.liste');
        $router->get($urlSuivi . '/Factures/details/{idDoc:'.$global.'+}/{source:'.$global.'+}[/{context:'.$global.'+}[/{signataire:'.$global.'+}]]', SuiviFacController::class, 'Suivi.SuiviFac.ajaxDetails');
        $router->get($urlSuivi . '/Factures/detailsLigne/{idDoc:'.$global.'+}/{idLigne:'.$global.'+}', SuiviFacController::class, 'Suivi.SuiviFac.ajaxDetailsLigne');

        /** Bon de sortie */
        $router->get($urlSuivi . '/BonDeSortie/index', SuiviBSController::class, 'Suivi.SuiviBs.liste');
        $router->get($urlSuivi . '/BonDeSortie/details/{idDoc:'.$global.'+}/{source:'.$global.'+}', SuiviBSController::class, 'Suivi.SuiviBs.ajaxDetails');
        $router->get($urlSuivi . '/BonDeSortie/popupExport', SuiviBSController::class, 'Suivi.SuiviBs.popupExport');
        $router->get($urlSuivi . '/BonDeSortie/export', SuiviBSController::class, 'Suivi.SuiviBs.export');
        
        /** Consultations */
        $router->get($urlSuivi . '/Consultations/details/{idDoc:'.$global.'+}/{source:'.$global.'+}', SuiviConsultController::class, 'Suivi.SuiviConsult.ajaxDetails');
        $router->get($urlSuivi . '/Consultations/detailsLigne/{idDoc:'.$global.'+}/{idLigne:'.$global.'+}', SuiviConsultController::class, 'Suivi.SuiviConsult.ajaxDetailsLigne');
    }
}
