@echo off
set "flagFile=%TEMP%\config_etapa2.txt"

:: Verifica se o arquivo de flag existe. Se existir, pula para a Parte 2.
if exist "%flagFile%" goto ETAPA2

:ETAPA1
echo [ETAPA 1] Aplicando configuracao de Registro...
reg add "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes" /t REG_MULTI_SZ /d "* 4096" /f

if %errorlevel% neq 0 (
    echo Erro ao alterar o registro. Execute como ADMINISTRADOR!
    pause
    exit
)

echo.
echo [ETAPA 1] Parando e deletando instancias do LocalDB...
sqllocaldb stop MSSQLLocalDB -k
sqllocaldb delete MSSQLLocalDB

echo.
echo [ETAPA 1] Removendo arquivos de dados residuais (.mdf e .ldf)...
:: Deleta arquivos na raiz da pasta do usuario (padrao do LocalDB)
del /f /q "%USERPROFILE%\*.mdf" 2>nul
del /f /q "%USERPROFILE%\*.ldf" 2>nul
:: Deleta especificamente na pasta do AppData do sistema, se existirem
del /f /q "%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB\*.mdf" 2>nul
del /f /q "%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB\*.ldf" 2>nul

echo.
echo Criando marcação para o próximo reinício...
echo "proxima_etapa" > "%flagFile%"

echo.
echo O computador sera REINICIADO em 10 segundos.
echo Salve seu trabalho! 
timeout /t 10
shutdown /r /t 0
exit

:ETAPA2
echo.
echo [ETAPA 2] Iniciando criacao do Banco de Dados...
del "%flagFile%"

echo Criando instancia MSSQLLocalDB com nova regra de setor...
sqllocaldb create MSSQLLocalDB
if %errorlevel% neq 0 (
    echo Erro ao criar instancia. Verifique se o LocalDB esta instalado.
    pause
    exit
)

echo Iniciando instancia...
sqllocaldb start MSSQLLocalDB

echo.
echo [CONCLUIDO] O ambiente foi reconfigurado com sucesso!
pause
exit
