@echo off
chcp 65001 >nul 2>&1
color 0B
title Clon DDH - Escaneando tu PC...

echo.
echo   ============================================================
echo      ____  _             ____  ____  _   _
echo     / ___^|^| ^| ___  _ __  ^|  _ \^|  _ \^| ^| ^| ^|
echo    ^| ^|    ^| ^|/ _ \^| '_ \ ^| ^| ^| ^| ^| ^| ^| ^|_^| ^|
echo    ^| ^|___ ^| ^| (_) ^| ^| ^| ^|^| ^|_^| ^| ^|_^| ^|  _  ^|
echo     \____^|^|_^|\___/^|_^| ^|_^|^|____/^|____/^|_^| ^|_^|
echo.
echo      Digital Diagnostic Hardware v4.1
echo      MyControl SpA - www.clon-ia.cl/ddh
echo   ============================================================
echo.
echo   Escaneando tu PC... esto toma 30-60 segundos.
echo   No cierres esta ventana.
echo.

REM === Generar codigo unico ===
set "DDH_PC=%COMPUTERNAME:~0,4%"
set /a DDH_RND=%RANDOM% %% 9000 + 1000
set "DDH_CODE=DDH-%DDH_PC%-%DDH_RND%"

REM === Archivo de salida ===
set "DDH_DIR=%USERPROFILE%\Documents"
if not exist "%DDH_DIR%" set "DDH_DIR=%USERPROFILE%\Desktop"
set "DDH_FILE=%DDH_DIR%\CLON-DDH-REPORTE_%DDH_CODE%.txt"

REM === Iniciar reporte ===
(
echo ============================================================
echo  CLON DDH - Digital Diagnostic Hardware
echo  MyControl SpA - Reporte de Diagnostico
echo ============================================================
echo.
echo  Codigo: %DDH_CODE%
echo  Fecha:  %date% %time%
echo  PC:     %COMPUTERNAME%
echo  User:   %USERNAME%
echo ============================================================
) > "%DDH_FILE%"

REM ============================================================
REM  SECCION 1: INFORMACION DEL SISTEMA
REM ============================================================
echo   [1/10] Sistema operativo...
(
echo.
echo ============================================================
echo  1. SISTEMA OPERATIVO
echo ============================================================
) >> "%DDH_FILE%"
systeminfo 2>nul | findstr /C:"OS" /C:"Sistema" /C:"Tipo" /C:"Version" /C:"Fabricante del sistema" /C:"Modelo" /C:"BIOS" /C:"Directorio" /C:"Zona" /C:"Arranque" /C:"Tiempo" >> "%DDH_FILE%" 2>nul

REM ============================================================
REM  SECCION 2: PROCESADOR
REM ============================================================
echo   [2/10] Procesador...
(
echo.
echo ============================================================
echo  2. PROCESADOR (CPU)
echo ============================================================
) >> "%DDH_FILE%"
wmic cpu get Name,NumberOfCores,NumberOfLogicalProcessors,MaxClockSpeed,CurrentClockSpeed /format:list 2>nul | findstr /v /r "^$" >> "%DDH_FILE%" 2>nul

REM ============================================================
REM  SECCION 3: MEMORIA RAM
REM ============================================================
echo   [3/10] Memoria RAM...
(
echo.
echo ============================================================
echo  3. MEMORIA RAM
echo ============================================================
) >> "%DDH_FILE%"
echo --- Resumen RAM --- >> "%DDH_FILE%"
systeminfo 2>nul | findstr /C:"Memoria" /C:"memoria" >> "%DDH_FILE%" 2>nul
echo --- Modulos Instalados --- >> "%DDH_FILE%"
wmic memorychip get BankLabel,Capacity,Speed,Manufacturer,PartNumber /format:list 2>nul | findstr /v /r "^$" >> "%DDH_FILE%" 2>nul

REM ============================================================
REM  SECCION 4: DISCOS
REM ============================================================
echo   [4/10] Discos y almacenamiento...
(
echo.
echo ============================================================
echo  4. ALMACENAMIENTO
echo ============================================================
) >> "%DDH_FILE%"
echo --- Discos Fisicos --- >> "%DDH_FILE%"
wmic diskdrive get Model,Size,MediaType,Status,InterfaceType /format:list 2>nul | findstr /v /r "^$" >> "%DDH_FILE%" 2>nul
echo --- Particiones --- >> "%DDH_FILE%"
wmic logicaldisk get Caption,Size,FreeSpace,FileSystem,VolumeName /format:list 2>nul | findstr /v /r "^$" >> "%DDH_FILE%" 2>nul

REM ============================================================
REM  SECCION 5: GPU
REM ============================================================
echo   [5/10] Tarjeta grafica...
(
echo.
echo ============================================================
echo  5. TARJETA GRAFICA (GPU)
echo ============================================================
) >> "%DDH_FILE%"
wmic path win32_videocontroller get Name,DriverVersion,AdapterRAM,VideoProcessor,CurrentHorizontalResolution,CurrentVerticalResolution /format:list 2>nul | findstr /v /r "^$" >> "%DDH_FILE%" 2>nul

REM ============================================================
REM  SECCION 6: BATERIA
REM ============================================================
echo   [6/10] Bateria...
(
echo.
echo ============================================================
echo  6. BATERIA
echo ============================================================
) >> "%DDH_FILE%"
wmic path win32_battery get EstimatedChargeRemaining,BatteryStatus,DesignCapacity,FullChargeCapacity,Name /format:list 2>nul | findstr /v /r "^$" >> "%DDH_FILE%" 2>nul
if %errorlevel% neq 0 echo   (No se detecto bateria - equipo de escritorio) >> "%DDH_FILE%"

REM ============================================================
REM  SECCION 7: RED
REM ============================================================
echo   [7/10] Red y conectividad...
(
echo.
echo ============================================================
echo  7. RED Y CONECTIVIDAD
echo ============================================================
) >> "%DDH_FILE%"
echo --- Adaptadores de Red --- >> "%DDH_FILE%"
wmic nic where "NetEnabled=true" get Name,MACAddress,Speed /format:list 2>nul | findstr /v /r "^$" >> "%DDH_FILE%" 2>nul
echo --- Configuracion IP --- >> "%DDH_FILE%"
ipconfig 2>nul | findstr /C:"IPv4" /C:"Puerta" /C:"Mascara" /C:"DNS" /C:"adaptador" /C:"Adapter" /C:"Gateway" /C:"Subnet" >> "%DDH_FILE%" 2>nul

REM ============================================================
REM  SECCION 8: NUMERO DE SERIE Y BIOS
REM ============================================================
echo   [8/10] Numero de serie...
(
echo.
echo ============================================================
echo  8. IDENTIFICACION DEL EQUIPO
echo ============================================================
) >> "%DDH_FILE%"
echo --- BIOS --- >> "%DDH_FILE%"
wmic bios get SerialNumber,Manufacturer,SMBIOSBIOSVersion,ReleaseDate /format:list 2>nul | findstr /v /r "^$" >> "%DDH_FILE%" 2>nul
echo --- Placa Madre --- >> "%DDH_FILE%"
wmic baseboard get Product,Manufacturer,SerialNumber /format:list 2>nul | findstr /v /r "^$" >> "%DDH_FILE%" 2>nul
echo --- Gabinete --- >> "%DDH_FILE%"
wmic systemenclosure get SerialNumber,Manufacturer,ChassisTypes /format:list 2>nul | findstr /v /r "^$" >> "%DDH_FILE%" 2>nul

REM ============================================================
REM  SECCION 9: DRIVERS CON PROBLEMAS
REM ============================================================
echo   [9/10] Drivers y dispositivos...
(
echo.
echo ============================================================
echo  9. DRIVERS Y DISPOSITIVOS
echo ============================================================
) >> "%DDH_FILE%"
echo --- Dispositivos con Problemas --- >> "%DDH_FILE%"
wmic path Win32_PnPEntity where "ConfigManagerErrorCode<>0" get Name,ConfigManagerErrorCode /format:list 2>nul | findstr /v /r "^$" >> "%DDH_FILE%" 2>nul
if %errorlevel% neq 0 echo   Todos los dispositivos funcionan correctamente. >> "%DDH_FILE%"
echo --- Programas de Inicio --- >> "%DDH_FILE%"
wmic startup get Caption,Command /format:list 2>nul | findstr /v /r "^$" >> "%DDH_FILE%" 2>nul

REM ============================================================
REM  SECCION 10: ANTIVIRUS Y SEGURIDAD
REM ============================================================
echo   [10/10] Seguridad...
(
echo.
echo ============================================================
echo  10. SEGURIDAD
echo ============================================================
) >> "%DDH_FILE%"
echo --- Antivirus --- >> "%DDH_FILE%"
wmic /namespace:\\root\SecurityCenter2 path AntiVirusProduct get displayName,productState /format:list 2>nul | findstr /v /r "^$" >> "%DDH_FILE%" 2>nul
echo --- Firewall --- >> "%DDH_FILE%"
netsh advfirewall show currentprofile state 2>nul >> "%DDH_FILE%" 2>nul
echo --- Ultimas Actualizaciones --- >> "%DDH_FILE%"
wmic qfe get HotFixID,InstalledOn,Description /format:list 2>nul | findstr /v /r "^$" >> "%DDH_FILE%" 2>nul

REM ============================================================
REM  EVENTOS DEL SISTEMA (errores recientes)
REM ============================================================
(
echo.
echo ============================================================
echo  11. ERRORES RECIENTES DEL SISTEMA
echo ============================================================
) >> "%DDH_FILE%"
wevtutil qe System /c:15 /f:text /rd:true /q:"*[System[Level=1 or Level=2]]" 2>nul >> "%DDH_FILE%" 2>nul

REM ============================================================
REM  TEMPERATURA (si disponible)
REM ============================================================
(
echo.
echo ============================================================
echo  12. TEMPERATURA (si disponible)
echo ============================================================
) >> "%DDH_FILE%"
wmic /namespace:\\root\wmi PATH MSAcpi_ThermalZoneTemperature get CurrentTemperature 2>nul | findstr /v /r "^$" >> "%DDH_FILE%" 2>nul
if %errorlevel% neq 0 echo   Sensor de temperatura no accesible sin permisos de admin. >> "%DDH_FILE%"

REM ============================================================
REM  RESUMEN FINAL
REM ============================================================
(
echo.
echo ============================================================
echo  RESUMEN
echo ============================================================
echo.
echo  Tu codigo de diagnostico es:
echo.
echo       %DDH_CODE%
echo.
echo  Guarda este codigo. Lo necesitas para:
echo  - Ver tu reporte online en www.clon-ia.cl/ddh
echo  - Recibir recomendaciones de un experto
echo.
echo  Reporte guardado en:
echo  %DDH_FILE%
echo.
echo  Generado por Clon DDH - MyControl SpA
echo  www.clon-ia.cl/ddh
echo ============================================================
) >> "%DDH_FILE%"

REM ============================================================
REM  SUBIR REPORTE AL SERVIDOR
REM ============================================================
echo.
echo   Subiendo reporte al servidor...
curl -s -X POST "https://clon-ia.cl/api/ddh/upload" -H "Content-Type: application/json" -d "{\"code\":\"%DDH_CODE%\",\"content\":\""}" >nul 2>&1

REM Usar certutil para codificar el archivo y subirlo limpio
copy "%DDH_FILE%" "%TEMP%\ddh_upload.txt" >nul 2>&1
curl -s -X POST "https://clon-ia.cl/api/ddh/upload" -F "code=%DDH_CODE%" -F "report=@%TEMP%\ddh_upload.txt" >nul 2>&1
if %errorlevel% equ 0 (
    echo   Reporte subido correctamente.
) else (
    echo   No se pudo subir. Puedes verlo localmente.
)
del "%TEMP%\ddh_upload.txt" >nul 2>&1

REM ============================================================
REM  PANTALLA FINAL
REM ============================================================
color 0A
cls
echo.
echo   ============================================================
echo      ESCANEO COMPLETADO
echo   ============================================================
echo.
echo      Tu codigo de diagnostico es:
echo.
echo              %DDH_CODE%
echo.
echo   ============================================================
echo.
echo      Anota este codigo y ve a:
echo      www.clon-ia.cl/ddh
echo.
echo      Ahi puedes ver tu diagnostico completo online.
echo.
echo      Reporte guardado en Documentos:
echo      %DDH_FILE%
echo.
echo   ============================================================
echo      Presiona cualquier tecla para abrir el reporte...
echo   ============================================================
pause >nul
start notepad "%DDH_FILE%"
