/////////////////////////////////////////////////
// CONCERT ANNUEL
// VENTE UNIQUEMENT DES PLACES SPECTATEUR
// [DOMAIN]/concert
/////////////////////////////////////////////////

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

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

////////////////////////////////////////////////////
// FILE NAME
////////////////////////////////////////////////////
const filename = path.parse(__filename).base;

/////////////////////////////////////////////////
// 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_spectateurController = require("../controllers/concert_annuel/inscription_spectateurController");
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 admin_controller = require("../controllers/concert_annuel/adminController");
const ajout_controller = require("../controllers/concert_annuel/ajout_concertController");
const ajout_familleController = require("../controllers/concert_annuel/ajout_familleController");
const ajout_payerController = require("../controllers/concert_annuel/ajout_payerController");

const inscription_spectateur_tous = require("../controllers/concert_annuel/inscrip_spectateur_tousController");
const inscription_spectateur_tous_recap = require("../controllers/concert_annuel/inscription_spectateur_tous_recapController");


//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);

// VENTE DES PLACES RESTANTES VIA WEEZEVENT
// router.get('/identifier', function(req, res) {
//     logger.info("on affiche la page web CONCERT inscription spectateur (concertRouter.js)", { numsession: req.session.id });
    
//     res.render('concert/page_templates/achat_spectateur_tous');

// });

/////////////////////////////////////////////////
// 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_spectateur);

/////////////////////////////////////////////////
// 3 - PAGE ACHAT PLACES SPECTATEUR
/////////////////////////////////////////////////
router.get('/inscription_spectateur', function(req, res) {
    logger.info("on affiche la page web CONCERT inscription spectateur (concertRouter.js)", { numsession: req.session.id });
    res.locals.identifiant = req.session.identifiant;
    res.locals.spectateur_nb_restantes = req.session.spectateur_nb_restantes;
    res.locals.quota_spectateur = req.session.quota_spectateur;
    res.locals.quota_total_spectateur = req.session.quota_total_spectateur;
    res.locals.encadr_parent_nb_restantes = req.session.encadr_parent_nb_restantes;
    logger.info("res.locals.encadr_parent_nb_restantes : " + res.locals.encadr_parent_nb_restantes, { numsession: req.session.id, label: filename });
    res.render('concert/page_templates/achat_spectateur');
});
// SCRIPT SUR CLIC "VALIDER" APRÈS AVOIR REMPLI LE FORMULAIRE
router.post('/inscription_spectateur', inscription_spectateurController.inscription_spectateur);

/////////////////////////////////////////////////
// 3 bis - PAGE ACHAT PLACES SPECTATEUR TOUT PUBLIC
/////////////////////////////////////////////////
//router.get('/inscription_spectateur_tous', inscription_spectateur_tous.inscription_spectateur_tous);


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


/////////////////////////////////////////////////
// 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('/inscription_recap', 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);



/////////////////////////////////////////////////
/////////////////////////////////////////////////
// ADMIN
/////////////////////////////////////////////////

router.get('/admin', admin_controller.adminController);

// CLIC "S'INSCRIRE" => VÉRIFICATION IDENTIFIANT
router.post('/admin', 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.locals.quota_spectateur = req.session.quota_spectateur;
    res.locals.quota_total_spectateur = req.session.quota_total_spectateur;

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

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

router.get('/admin/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);
    
    
    res.render('concert/page_templates/inscrip_recap_famille_sanspaiement.ejs');
    
});
// CLIC sur VALIDER pour inscription sans paiement
router.post('/admin/post_valid_recap', ajout_payerController.payer);

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