package linea;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;

//--------------------------------------------------------------------------
// Classe pour l'initialisation de la base de données
// Elle est utilisée pour copier la base de données depuis le .jar vers le répertoire courant de l'utilisateur
// Cela permet de pouvoir lire et écrire sur la base de données, contrairement à la base de données dans le .jar qui est en lecture seule
//--------------------------------------------------------------------------

public class bddInit {
    
    public static void init() throws IOException {
        String dbFileName = "Niveaux.db";
        // On crée l'objet qui correspond au fichier de la base de données dans le répertoire courant de l'utilisateur
        File dbFile = new File(dbFileName);

        // Si le fichier de la base de données n'existe pas, on le crée en le copiant depuis le .jar
        if(!dbFile.exists()){
            // Récupération de la BDD du .jar ou "main/ressources" dans le projet
            InputStream is = bddInit.class.getResourceAsStream("/" + dbFileName);
            // Si le fichier est introuvable dans le .jar, on affiche une erreur
            if (is == null) {
                throw new  FileNotFoundException("La base de données " + dbFileName + " est introuvable dans le .jar");
            }
            // Copie du fichier de la base de données depuis le .jar vers le répertoire courant de l'utilisateur
            Files.copy(is, dbFile.toPath());
            // Fermeture du flux d'entrée
            is.close();
            System.out.println("Base de données " + dbFileName + " copiée depuis le .jar vers le répertoire courant de l'utilisateur");
        }
    }
}
