@echo off
rem ===========================================================================
rem  beelink-deploy.cmd  -  prepara o Beelink como no Windows de fallback da
rem  rede, 100%% SEM privilegio de admin (sem servico, sem firewall, sem
rem  registro -> sem risco). O que exige admin fica como passo OPCIONAL no fim.
rem
rem  Nao mostra warning se algo ainda nao esta ligado/instalado: apenas prepara
rem  tudo p/ ativar sozinho quando voce logar no Beelink e deixa-lo online.
rem
rem  USO: copie a pasta "roteiro" p/ o Beelink e rode (2 cliques) este arquivo.
rem  Idempotente: pode rodar quantas vezes quiser.
rem  Silencioso p/ teste/headless: set ROTEIRO_NO_PAUSE=1
rem ===========================================================================
setlocal EnableDelayedExpansion
chcp 65001 >nul 2>&1
set "HERE=%~dp0"
set "DEST=%USERPROFILE%\roteiro"
set "WEB=%DEST%\web"
set "STARTUP=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup"
set "NEED_EXE="

echo(
echo   ROTEIRO - deploy Beelink ^(sem admin^)
echo   ===================================
echo(

rem --- 1) pastas ---
if not exist "%DEST%" mkdir "%DEST%" >nul 2>&1
if not exist "%WEB%"  mkdir "%WEB%"  >nul 2>&1
echo   [ok] pasta local: %DEST%

rem --- 2) binario completo (uso LOCAL; nao vai p/ o servidor http) ---
set "EXE="
if exist "%HERE%roteiro-full.exe" set "EXE=%HERE%roteiro-full.exe"
if not defined EXE if exist "%HERE%roteiro.exe" set "EXE=%HERE%roteiro.exe"
if defined EXE (
  copy /y "!EXE!" "%DEST%\roteiro.exe" >nul 2>&1
  echo   [ok] roteiro.exe instalado ^(uso local, com modelos^)
) else (
  rem tenta baixar do baltazar; so funciona com tailscale ligado. silencioso.
  where curl >nul 2>&1 && curl -fsS --max-time 8 -o "%DEST%\roteiro.exe" http://100.86.208.125:8666/roteiro-full.exe >nul 2>&1
  if exist "%DEST%\roteiro.exe" ( echo   [ok] roteiro.exe baixado do baltazar ) else ( set "NEED_EXE=1" )
)

rem --- 3) UI publica p/ o servidor (SEM modelos -> LGPD) ---
if exist "%HERE%roteiro.html" copy /y "%HERE%roteiro.html" "%WEB%\index.html" >nul 2>&1
if exist "%WEB%\index.html" ( echo   [ok] UI web publica em %WEB% ^(sem modelos^) ) else ( echo   [--] roteiro.html nao encontrado ^(servidor servira so o que houver^) )

rem --- 4) launcher no Desktop (abre a TUI completa neste PC) ---
>"%USERPROFILE%\Desktop\ROTEIRO.cmd" echo @start "" "%DEST%\roteiro.exe"
echo   [ok] atalho: Desktop\ROTEIRO.cmd

rem --- 5) "presenca" no logon: liga tailscale + serve a UI publica (se houver) ---
rem grava beelink-presence.cmd (redirecionamento escapado)
(
  echo @echo off
  echo rem presenca do Beelink na rede ^(sem admin^); roda sozinho no logon.
  echo rem conecta o tailscale se instalado ^(silencioso; nada se nao houver^)
  echo where tailscale ^>nul 2^>^&1 ^&^& start "" /min tailscale up
  echo rem servidor embutido do roteiro na :8666 ^(sem Python; so a UI publica^)
  echo if exist "%%USERPROFILE%%\roteiro\roteiro.exe" start "" /min "%%USERPROFILE%%\roteiro\roteiro.exe" --serve 8666
)> "%DEST%\beelink-presence.cmd"
if exist "%STARTUP%" copy /y "%DEST%\beelink-presence.cmd" "%STARTUP%\beelink-presence.cmd" >nul 2>&1
if exist "%STARTUP%\beelink-presence.cmd" ( echo   [ok] presenca no logon ^(tailscale + :8666 quando ligado^) ) else ( echo   [--] pasta Startup indisponivel ^(presenca so manual^) )

echo(
echo   PRONTO. Nada roda agora; tudo ATIVA quando voce logar no Beelink:
echo     - laudar aqui:   Desktop\ROTEIRO.cmd
echo     - na rede:       tailscale up + roteiro.exe --serve :8666  (auto no logon; sem Python)
echo(
echo   Opcional (so 1x, com admin) p/ acesso remoto completo — ssh + RDP:
echo     powershell -ep bypass -f "%HERE%beelink-setup.ps1"
echo(
if defined NEED_EXE echo   Nota: coloque roteiro-full.exe nesta pasta e rode de novo p/ instalar o app.
echo   Este PC: %COMPUTERNAME%   ^(use este nome nos atalhos "beelink" da paleta "/"^)
echo(
if not "%ROTEIRO_NO_PAUSE%"=="1" pause
endlocal
