package fr.sgr.formation.voteapp.traces.modele;

import java.beans.ConstructorProperties;
import java.util.ArrayList;
import java.util.List;

import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class PageTraces {

	/**
	 * Le nombre d'items total // Le nombre d'items retournés Le numéro de la
	 * page retournée Le nombre de pages total
	 */
	/** item retourne : lengh de la liste */
	private int nbrTotalItem;
	private int nbrTotalPages;
	private int numPage;

	ArrayList<Trace> itemList;

	/** Par defaut les 5 dernières traces */
	public static int ITEM_PAR_PAGES = 5;

	/** num Page static static int pages */
	@ConstructorProperties(value = { "" })
	public PageTraces() {
	}

	@ConstructorProperties(value = { "nbrTotalItem", "nbrTotalPages", "numPage" })
	public PageTraces(int nbrTotalItem, int nbrTotalPages, int numPage) {
		this.nbrTotalItem = nbrTotalItem;
		this.nbrTotalPages = nbrTotalPages;
		this.numPage = numPage;

		itemList = new ArrayList<Trace>();
	}

	public static int nbrTotalPages(int tailleListeItem) {

		int resultat = (int) tailleListeItem / ITEM_PAR_PAGES;

		if (tailleListeItem % ITEM_PAR_PAGES != 0)
			resultat++;

		return resultat;
	}

	public void assignationItem(List<Trace> listeTrace) {
		int ind = numPage * ITEM_PAR_PAGES;

		/** ENREGISTREMENT DES ITEMS DANS LA LISTE */
		for (int i = ITEM_PAR_PAGES - 1; i >= 0; i--) {
			itemList.add(listeTrace.get(ind - i - 1));
		}

	}

}
