@echo off
setlocal enabledelayedexpansion

REM ============================================================
REM  Instalador do Tisai? Anfitriao
REM  Dois cliques: pede elevacao, instala Sunshine (se faltar),
REM  configura tudo e sobe o servico. Zero digitacao.
REM ============================================================

set "AGENT_KEY=cYeNHajApmaWEVf_S1CzJqu8_JAjC52sYyMl8wMF2yo"
set "INSTALL_DIR=%ProgramFiles%\Tisailan"

REM Credenciais do Sunshine — geradas pelo Tisailan, o dono nao precisa saber.
set "SUNSHINE_USER=tisailan"
set "SUNSHINE_PASS=Tisailan#2026"
set "SUNSHINE_EXE=%ProgramFiles%\Sunshine\sunshine.exe"
set "SUNSHINE_MSI_URL=https://github.com/LizardByte/Sunshine/releases/latest/download/Sunshine-Windows-AMD64-installer.msi"

REM --- eleva para Administrador ---
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo Solicitando permissao de administrador...
    powershell -Command "Start-Process '%~f0' -Verb RunAs"
    exit /b
)

echo.
echo ============================================================
echo  Instalando Tisai? Anfitriao
echo ============================================================
echo.

REM --- 1) Sunshine: instala se nao existir ---
if exist "%SUNSHINE_EXE%" (
    echo [1/5] Sunshine ja instalado.
) else (
    echo [1/5] Baixando o Sunshine...
    powershell -NoProfile -Command "try { Invoke-WebRequest -Uri '%SUNSHINE_MSI_URL%' -OutFile '%TEMP%\sunshine.msi' -UseBasicParsing } catch { exit 1 }"
    if exist "%TEMP%\sunshine.msi" (
        echo       Instalando o Sunshine (silencioso, pode demorar)...
        msiexec /i "%TEMP%\sunshine.msi" /quiet /norestart
        del "%TEMP%\sunshine.msi" >nul 2>&1
    ) else (
        echo       AVISO: nao consegui baixar o Sunshine. Instale manualmente
        echo       de https://github.com/LizardByte/Sunshine e rode este .bat de novo.
    )
)

REM --- 2) Credenciais do Sunshine (para o pareamento automatico) ---
if exist "%SUNSHINE_EXE%" (
    echo [2/5] Configurando credenciais do Sunshine...
    "%SUNSHINE_EXE%" --creds %SUNSHINE_USER% %SUNSHINE_PASS% >nul 2>&1
) else (
    echo [2/5] Sunshine ausente; pulando credenciais.
)

REM --- 3) Copia os arquivos do Tisailan ---
echo [3/5] Copiando arquivos para "%INSTALL_DIR%"...
if not exist "%INSTALL_DIR%" mkdir "%INSTALL_DIR%"
xcopy /Y /E /I "%~dp0*" "%INSTALL_DIR%\" >nul
del "%INSTALL_DIR%\Instalar-Tisailan.bat" >nul 2>&1
copy /Y "%~dp0Desinstalar-Tisailan.bat" "%INSTALL_DIR%\" >nul 2>&1

REM --- 4) Configura o agent (incl. credenciais do Sunshine) ---
echo [4/5] Configurando o Tisailan...
"%INSTALL_DIR%\tisailan-agent.exe" configure-sunshine --user "%SUNSHINE_USER%" --pass "%SUNSHINE_PASS%" >nul 2>&1

REM --- 5) Instala e inicia o servico ---
echo [5/5] Instalando o servico...
"%INSTALL_DIR%\tisailan-agent.exe" install-service --key %AGENT_KEY%
if %errorlevel% neq 0 (
    echo.
    echo ERRO na instalacao. Veja C:\ProgramData\Tisailan\agent.log
    pause
    exit /b 1
)

REM --- atalho de controle na area de trabalho ---
powershell -NoProfile -Command ^
  "$s=(New-Object -ComObject WScript.Shell).CreateShortcut([Environment]::GetFolderPath('CommonDesktopDirectory')+'\Tisai Anfitriao.lnk');" ^
  "$s.TargetPath='%INSTALL_DIR%\tisailan-servidor.exe'; $s.WorkingDirectory='%INSTALL_DIR%';" ^
  "$s.IconLocation='%INSTALL_DIR%\tisailan-servidor.exe'; $s.Save()" >nul 2>&1

echo.
echo ============================================================
echo  Pronto! O Tisailan esta rodando em segundo plano e a
echo  maquina ja esta disponivel para jogos.
echo.
echo  Use o atalho "Tisai Anfitriao" para ligar/desligar.
echo.
echo  Se o Sunshine acabou de ser instalado, os jogos precisam
echo  ser cadastrados nele (https://localhost:47990,
echo  usuario: %SUNSHINE_USER%) e no painel do dono.
echo ============================================================
echo.
pause
