package view.console.enseignant;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import model.Module;
import model.Promotion;
import model.QCM;
import model.Session;

public class Session_Modification {
	public static void trigger() {
		System.out.println("Modification de sessions :");
	}
	
	public static void showSessions(ArrayList<Session> liste_sessions) {
		int i;
		System.out.println("Entrer le numéro de la session :");
		System.out.println("0. Terminer la modification");
		for (i = 0 ; i < liste_sessions.size() ; i++) {
			System.out.println(Integer.toString(i+1) + ". " + liste_sessions.get(i).toString());
		}
	}
	
	public static void askField(Session s) {
		System.out.println("Session '" + s.toString() + "'");
		System.out.println("Sélectionner la modification :");
		System.out.println("0. Terminer la modification");
		System.out.println("1. Date de début");
		System.out.println("2. Date de fin");
		System.out.println("3. Nombre maximum de rendus (répétition)");
		System.out.println("4. Promotion");
		System.out.println("5. Module");
		System.out.println("6. QCM");
	}
	
	public static void askDateDebut() {
		System.out.println("Nouvelle date de début de session (format Jour-Mois-Année : 'jj-mm-aaaa') :");
	}
	
	public static void askDateFin() {
		System.out.println("Nouvelle date de fin de session (format Jour-Mois-Année : 'jj-mm-aaaa'):");
	}
	
	public static void askRepetition() {
		System.out.println("Nouveau nombre de rendus maximum ('Entrée' pour entrer la valeur par défaut : 1) :");
	}
	
	public static void showPromotions(ArrayList<Promotion> liste_prom) {
		int i;
		System.out.println("Entrer le libellé ou le numéro de la nouvelle promotion :");
		for (i = 0 ; i < liste_prom.size() ; i++) {
			System.out.println(Integer.toString(i+1) + ". " + liste_prom.get(i).getLibelle());
		}
	}
	
	public static void showModules(ArrayList<Module> liste_modules) {
		int i;
		System.out.println("Entrer le libellé ou le numéro du nouveau module :");
		for (i = 0 ; i < liste_modules.size() ; i++) {
			System.out.println(Integer.toString(i+1) + ". " + liste_modules.get(i).getLibelle());
		}
	}
	
	public static void showQCM(ArrayList<QCM> l_qcm) {
		int i;
		System.out.println("Choisir le numéro du nouveau QCM :");
		for (i = 0 ; i < l_qcm.size() ; i++) {
			System.out.println(Integer.toString(i+1) + ". " + l_qcm.get(i).getLibelle());
		}
	}
	
	public static void updateSession() {
		System.out.println("Modification des sessions terminée");
	}
	
	public static void failPromotion() {
		System.out.println("Promotion non trouvée.");
	}
	
	public static void failModule() {
		System.out.println("Module non trouvé.");
	}
	
	public static void failDate() {
		System.out.println("Date non reconnue. Veuillez utiliser le format Jour-Mois-Année : 'jj-mm-aaaa'.");
	}
	
	public static void failDate(Date d, boolean apres) {
		String str_apres;
		if (apres) {
			str_apres = "ultérieure";
		} else {
			str_apres = "antérieure";
		}
		DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
		System.out.println("Veuillez entrer une date "+str_apres+" à " + dateFormat.format(d) + ".");
	}
	
	public static void fail(int min, int cap) {
		System.out.println("Veuillez entrer un chiffre entre "+ Integer.toString(min) + " et " + Integer.toString(cap) + ".");
	}
}
