/////////////////////////////////////////////////
// STAGE NATIONAL
// [DOMAIN]/concert
/////////////////////////////////////////////////

/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("../public/js/app/logger_concert");

/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
const express = require('express');
const router = express.Router();

/////////////////////////////////////////////////
// APPELS DES FONCTIONS
/////////////////////////////////////////////////
const affiche_identifier_controller = require("../controllers/concert_annuel/affiche_identiferController");
const identifier_controller = require("../controllers/concert_annuel/identiferController");
const inscription_familleController = require("../controllers/concert_annuel/inscription_familleController");
const inscription_listeattente = require("../controllers/concert_annuel/inscription_listeattenteController");
const payerController = require("../controllers/concert_annuel/payerController");
const retourStripeController = require("../controllers/concert_annuel/retourStripeController");
const recup_gs_controller = require("../controllers/concert_annuel/maj_gs_concertController");
const weez_controller = require("../controllers/concert_annuel/weez_concertController");
const ajout_controller = require("../controllers/concert_annuel/ajout_concertController");
//const weez_controller = require("../controllers/concert_annuel/weeztoken_concertController");

/////////////////////////////////////////////////
/////////////////////////////////////////////////
// ROUTES
/////////////////////////////////////////////////
/////////////////////////////////////////////////

/////////////////////////////////////////////////
// 1 - AFFICHER PAGE CHECK IDENTIFIANT
/////////////////////////////////////////////////
router.get('/', function(req, res) {
    logger.info("on est dans la page web CONCERT (concertRouter.js)", { numsession: req.session.id });
    // rediriger vers la page de saisie de l'identifiant
    res.redirect('/concert/identifier');
});
/////////////////////////////////////////////////
// 1. QUAND ON ARRIVE SUR LA PAGE CHECK IDENTIFIANT :
// AFFICHAGE DU NOMBRE DE PLACES RESTANTES
/////////////////////////////////////////////////
router.get('/identifier', affiche_identifier_controller.openidentifiant);

/////////////////////////////////////////////////
// 2. SAISIE DU L'IDENTIFIANT
// VÉRIFICATION SI L'IDENTIFIANT EST ADHÉRENT
/////////////////////////////////////////////////
// CLIC "S'INSCRIRE" => VÉRIFICATION IDENTIFIANT
router.post('/identifier', identifier_controller.checkidentifiant);

/////////////////////////////////////////////////
// 3 - PAGE INSCRIPTION FAMILLE
/////////////////////////////////////////////////

router.get('/inscription_famille', function(req, res) {
    logger.info("on est dans la page web CONCERT inscription famille (concertRouter.js)", { numsession: req.session.id });
    res.locals.identifiant = req.session.identifiant;
    res.locals.association_suzuki = req.session.association_suzuki;
    res.locals.spectateur_nb_restantes = req.session.spectateur_nb_restantes;
    console.log("res.locals.spectateur_nb_restantes = ", res.locals.spectateur_nb_restantes)
    res.locals.encadr_parent_nb_restantes = req.session.encadr_parent_nb_restantes;
    res.locals.tout_instrument_nb_restantes = req.session.tout_instrument_nb_restantes;
    res.locals.piano_nb_restantes = req.session.piano_nb_restantes;
    res.locals.alto_nb_restantes = req.session.alto_nb_restantes;
    res.locals.flute_nb_restantes = req.session.flute_nb_restantes;
    res.locals.trompette_nb_restantes = req.session.trompette_nb_restantes;
    res.locals.harpe_nb_restantes = req.session.harpe_nb_restantes;
    res.locals.violon1_nb_restantes = req.session.violon1_nb_restantes;
    res.locals.violon2_nb_restantes = req.session.violon2_nb_restantes;
    res.locals.violoncelle1_nb_restantes = req.session.violoncelle1_nb_restantes;
    res.locals.violoncelle2_nb_restantes = req.session.violoncelle2_nb_restantes;
    res.locals.deja_inscrit_concert = req.session.deja_inscrit_concert;
    res.locals.quota_spectateur = req.session.quota_spectateur;
    res.locals.quota_concertiste = req.session.quota_concertiste;

    res.render('concert/page_templates/inscrip_formulaire_famille');
});

// SCRIPT SUR CLIC "VALIDER" APRÈS AVOIR REMPLI LE FORMULAIRE
router.post('/inscription_famille', inscription_familleController.inscription_famille);

/////////////////////////////////////////////////
// !!!! NON UTILISÉ
//
// 3 bis - PAGE AJOUT BILLET POUR FAMILLE DÉJA INSCRITE
/////////////////////////////////////////////////
router.get('/ajout_billet', function(req, res) {
    logger.info("on est dans la page web CONCERT ajout billet (concertRouter.js)", { numsession: req.session.id });

    res.locals.identifiant = req.session.identifiant;
    res.locals.association_suzuki = req.session.association_suzuki;
    res.locals.spectateur_nb_restantes = req.session.spectateur_nb_restantes;
    
    res.locals.encadr_parent_nb_restantes = req.session.encadr_parent_nb_restantes;

    res.render('concert/page_templates/ajout_billet');
});

/////////////////////////////////////////////////
// 3 ter - PAGE LISTE ATTENTE
/////////////////////////////////////////////////
router.get('/listeattente', function(req, res) {
    logger.info("on est dans la page web CONCERT listeattente (concertRouter.js)", { numsession: req.session.id });

    res.locals.identifiant = req.session.identifiant;
    res.locals.association_suzuki = req.session.association_suzuki;
    res.locals.piano_nb_restantes = req.session.piano_nb_restantes;
    res.locals.alto_nb_restantes = req.session.alto_nb_restantes;
    res.locals.flute_nb_restantes = req.session.flute_nb_restantes;
    res.locals.trompette_nb_restantes = req.session.trompette_nb_restantes;
    res.locals.harpe_nb_restantes = req.session.harpe_nb_restantes;
    res.locals.violon1_nb_restantes = req.session.violon1_nb_restantes;
    res.locals.violon2_nb_restantes = req.session.violon2_nb_restantes;
    res.locals.violoncelle1_nb_restantes = req.session.violoncelle1_nb_restantes;
    res.locals.violoncelle2_nb_restantes = req.session.violoncelle2_nb_restantes;

    res.render('concert/page_templates/inscrip_liste_attente');
});

// SCRIPT SUR CLIC "VALIDER" APRÈS AVOIR REMPLI LE FORMULAIRE LISTE D'ATTENTE
router.post('/listeattente', inscription_listeattente.inscription_listeattente);


/////////////////////////////////////////////////
// 4 - PAGE RECAP
// enregistrement dans la BD des participants
// Envoie vers Stripe
/////////////////////////////////////////////////
router.get('/inscription_recap', function(req, res) {
    logger.info("on est dans la page web CONCERT Récapitulatif inscription (concertRouter.js)", { numsession: req.session.id });
    res.locals.identifiant = req.session.identifiant;
    res.locals.association_suzuki = req.session.association_suzuki;
    res.locals.hebergement_ville = req.session.hebergement_ville;
    res.locals.hebergement_nb = req.session.hebergement_nb;
    res.locals.spectateur_nb_place = req.session.spectateur_nb_place;
    res.locals.cout_concertiste = req.session.cout_concertiste;
    res.locals.cout_spectateur = req.session.cout_spectateur;
    res.locals.montant_total = req.session.montant_total;
    res.locals.don = req.session.don;

    for (let toto = 1; toto < 5; toto++) {
        if (req.session["eleve_"+toto+"_nom"]){
            res.locals["eleve_"+toto+"_numero"] = toto;
            res.locals["eleve_"+toto+"_nom"] = req.session["eleve_"+toto+"_nom"];
            res.locals["eleve_"+toto+"_prenom"] = req.session["eleve_"+toto+"_prenom"];
            res.locals["eleve_"+toto+"_age"] = req.session["eleve_"+toto+"_age"];
            res.locals["eleve_"+toto+"_instrument"] = req.session["eleve_"+toto+"_instrument"];
            res.locals["eleve_"+toto+"_cahier"] = req.session["eleve_"+toto+"_cahier"];
            res.locals["eleve_"+toto+"_piece"] = req.session["eleve_"+toto+"_piece"];
            res.locals["eleve_"+toto+"_prof_nom"] = req.session["eleve_"+toto+"_prof_nom"];
            res.locals["eleve_"+toto+"_prof_mail"] = req.session["eleve_"+toto+"_prof_mail"];
        }
    }

    for (let toto = 1; toto < 5; toto++) {
        if (req.session["encadrant_"+toto+"_nom"]){
            res.locals["encadrant_"+toto+"_numero"] = toto;
            res.locals["encadrant_"+toto+"_type"] = req.session["encadrant_"+toto+"_type"];
            res.locals["encadrant_"+toto+"_nom"] = req.session["encadrant_"+toto+"_nom"];
            res.locals["encadrant_"+toto+"_prenom"] = req.session["encadrant_"+toto+"_prenom"];
            res.locals["encadrant_"+toto+"_telephone_mobile"] = req.session["encadrant_"+toto+"_telephone_mobile"];
            res.locals["encadrant_"+toto+"_mail"] = req.session["encadrant_"+toto+"_mail"];
            res.locals["encadrant_"+toto+"_prof_instrument"] = req.session["encadrant_"+toto+"_prof_instrument"];
        }
    }
    console.log("req.session.montant_total = ", req.session.montant_total);
    if (req.session.montant_total > 0){
        res.render('concert/page_templates/inscrip_recap_famille.ejs');
    } else {
        res.render('concert/page_templates/inscrip_recap_famille_sanspaiement.ejs');
    }
});

// CLIC sur PAYER
router.post('/post_payer', payerController.payer);
// CLIC sur VALIDER pour inscription sans paiement
router.post('/post_valid_recap', payerController.payer);


/////////////////////////////////////////////////
// 5 - RETOUR STRIPE
// enregistrement dans la BD des participants
/////////////////////////////////////////////////
router.get('/concert_paiement/reussi', retourStripeController.retour_bank);
router.get('/concert_paiement/annule', retourStripeController.retour_bank);

/////////////////////////////////////////////////
// GOOGLE SHEET
// DÉCHARGEMENT DES DONNÉES DANS GOOGLE SHEET
/////////////////////////////////////////////////

router.get('/maj_googlesheet', function(req, res) {
    logger.info("on est dans la page web maj_googlesheet (concertRouter.js)", { numsession: req.session.id });

    // Pour afficher le résultats des requêtes de récupérations
    res.locals.message = req.session.message;
    res.locals.message2 = req.session.message2;

    // il faut initialiser les variables après les avoir copiées dans la variable d'affichage pour ne pas laisser un chiffre
    req.session.message = undefined;
    req.session.message2 = undefined;


    res.render('concert/page_templates/maj_googlesheet.ejs');

});

/////////////////////////////////////////////////
// ADMIN
router.get('/admin', function(req, res) {
    if (req.session.err_mail_form_adhesion_1) {
        res.locals.err_mail_form_adhesion_1 = req.session.err_mail_form_adhesion_1;
        res.locals.err_mail_form_adhesion_2 = req.session.err_mail_form_adhesion_2;
        res.locals.err_mail_form_adhesion_3 = req.session.err_mail_form_adhesion_3;
        // on supprime le contenu après affichage
        req.session.err_mail_form_adhesion_1 = undefined;
        req.session.err_mail_form_adhesion_2 = undefined;
        req.session.err_mail_form_adhesion_3 = undefined;
    }
    // affichage du template ejs /views/page_templates/inscription_accueil.ejs
    res.render('concert/page_templates/admin');
});
// CLIC "S'INSCRIRE" => VÉRIFICATION IDENTIFIANT
router.post('/ajout', ajout_controller.checkidentifiant);
router.get('/admin/inscription_famille', function(req, res) {
    logger.info("on est dans la page web CONCERT AJOUT inscription famille (concertRouter.js)", { numsession: req.session.id });
    res.locals.identifiant = req.session.identifiant;
    res.locals.association_suzuki = req.session.association_suzuki;
    res.locals.spectateur_nb_restantes = req.session.spectateur_nb_restantes;
    console.log("res.locals.spectateur_nb_restantes = ", res.locals.spectateur_nb_restantes)
    res.locals.encadr_parent_nb_restantes = req.session.encadr_parent_nb_restantes;
    res.locals.tout_instrument_nb_restantes = req.session.tout_instrument_nb_restantes;
    res.locals.piano_nb_restantes = req.session.piano_nb_restantes;
    res.locals.alto_nb_restantes = req.session.alto_nb_restantes;
    res.locals.flute_nb_restantes = req.session.flute_nb_restantes;
    res.locals.trompette_nb_restantes = req.session.trompette_nb_restantes;
    res.locals.harpe_nb_restantes = req.session.harpe_nb_restantes;
    res.locals.violon1_nb_restantes = req.session.violon1_nb_restantes;
    res.locals.violon2_nb_restantes = req.session.violon2_nb_restantes;
    res.locals.violoncelle1_nb_restantes = req.session.violoncelle1_nb_restantes;
    res.locals.violoncelle2_nb_restantes = req.session.violoncelle2_nb_restantes;
    res.locals.deja_inscrit_concert = req.session.deja_inscrit_concert;
    res.locals.quota_spectateur = req.session.quota_spectateur;
    res.locals.quota_concertiste = req.session.quota_concertiste;

    res.render('concert/page_templates/ajout_formulaire_famille');
});


/////////////////////////////////////////////////
// TEST
/////////////////////////////////////////////////

// CLIC SUR LE BOUTON "Mettre à jour GSheet"
router.post('/onglet_adherent', recup_gs_controller.recup_gs);

// CLIC SUR LE BOUTON "Envoyer" à Weezevent
router.post('/envoie_weezevent', weez_controller.weez_envoie);




/////////////////////////////////////////////////
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
/////////////////////////////////////////////////
module.exports = router;