@echo off
setlocal ENABLEDELAYEDEXPANSION

cd /d "%~dp0"

echo --- Mise en prod Ratio_Cuisine ---

set "ROOT=%~dp0.."

set "VERSION_FILE=%ROOT%\Excel\dev\Ratio_Cuisine_VERSION.txt"
set "SRC=%ROOT%\Excel\dev\Ratio_Cuisine_dev.xlsm"
set "DST_DIR=%ROOT%\Excel\prod"
set "DST=%DST_DIR%\Ratio_Cuisine.xlsm"
set "BACKUP_DIR=%ROOT%\Excel\backup"
set KEEP_BACKUPS=10

echo.
echo ROOT        = %ROOT%
echo SRC         = %SRC%
echo DST         = %DST%
echo BACKUP_DIR  = %BACKUP_DIR%
echo VERSION_FILE= %VERSION_FILE%
echo.

set "OLD_VERSION="
if exist "%VERSION_FILE%" (
    set /p OLD_VERSION=<"%VERSION_FILE%"
)

if not exist "%SRC%" (
    echo ERREUR : fichier source introuvable :
    echo %SRC%
    exit /b 1
)

if not exist "%DST_DIR%" (
    echo ERREUR : dossier de destination introuvable :
    echo %DST_DIR%
    exit /b 1
)

if not exist "%BACKUP_DIR%" (
    echo Creation du dossier backup :
    echo %BACKUP_DIR%
    mkdir "%BACKUP_DIR%"
)

if exist "%DST_DIR%\~$Ratio_Cuisine.xlsm" (
    echo ERREUR : Ratio_Cuisine.xlsm est ouvert dans Excel.
    echo Ferme le classeur de production avant de relancer la mise en prod.
    exit /b 1
)

if exist "%DST%" (
    if "%OLD_VERSION%"=="" (
        set "BACKUP=%BACKUP_DIR%\Ratio_Cuisine_sansVersion.xlsm"
    ) else (
        set "BACKUP=%BACKUP_DIR%\Ratio_Cuisine_Vers%OLD_VERSION%.xlsm"
    )

    echo Sauvegarde de l'ancienne production...
    echo De : %DST%
    echo Vers : !BACKUP!

    copy /Y "%DST%" "!BACKUP!"

    if errorlevel 1 (
        echo ERREUR : la sauvegarde de l'ancienne production a echoue.
        exit /b 1
    )

    if not exist "!BACKUP!" (
        echo ERREUR : le fichier de sauvegarde n'a pas ete cree.
        echo Attendu : !BACKUP!
        exit /b 1
    )

    echo Sauvegarde OK : !BACKUP!
) else (
    echo Aucun ancien fichier de production trouve, pas de sauvegarde a faire.
)

echo.
echo Copie vers la version de production...
copy /Y "%SRC%" "%DST%"

if errorlevel 1 (
    echo ERREUR lors de la copie vers production.
    exit /b 1
)

if not exist "%DST%" (
    echo ERREUR : le fichier de production n'a pas ete cree.
    exit /b 1
)

echo.
echo Mise a jour de version...
python "%~dp0maj_version.py" "%VERSION_FILE%" "%DST%"

if errorlevel 1 (
    echo ERREUR lors de la mise a jour de version.
    exit /b 1
)

echo.
echo Nettoyage des anciennes sauvegardes Cuisine...
for /f "skip=%KEEP_BACKUPS% delims=" %%F in ('dir /b /a-d /o-d "%BACKUP_DIR%\Ratio_Cuisine_Vers*.xlsm" 2^>nul') do (
    echo Suppression ancienne sauvegarde : %%F
    del /q "%BACKUP_DIR%\%%F"
)

echo.
echo --- Mise en prod terminee ---
exit /b 0