package fr.monlouyan.bakefile;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Classe utilitaire pour la gestion des timestamps des fichiers.
 * 
 * @author Moncef STITI, Yanis HAMOUDI
 * @version 1.0
 */
public class TimestampManager {

	/**
	 * Constructeur de TimestampManager.
	 */
	public TimestampManager() {
		// Constructeur inutile
	}

    /**
     * Récupère le timestamp d'un fichier.
     * @return Le timestamp du fichier, ou 0 si le fichier n'existe pas.
	 * @param file Le fichier
     */
    public static long getTimestamp(File file) {
        if (file.exists()) {
            return file.lastModified(); // Récupère le timestamp du fichier
        }
        return 0; // Le fichier n'existe pas
    }
    
    /**
     * Compare deux fichiers en fonction de leurs timestamps de modification.
     * 
     * @param file1 Premier fichier
     * @param file2 Deuxième fichier
     * @return 1 si file1 est plus récent, -1 si file2 est plus récent, 0 s'ils ont le même timestamp
     */
    public static int compareTimestamps(File file1, File file2) {
        long time1 = getTimestamp(file1);
        long time2 = getTimestamp(file2);
        return Long.compare(time1, time2);
    }

    /**
     * Permet de formater un timestamp en une date lisible.
     * @param timestamp Le timestamp à formater
     * @return La date formatée
     */
    public static String formatTimestamp(long timestamp) {
        if (timestamp == 0) return "N/A";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return sdf.format(new Date(timestamp));
    }
}
