@echo off
chcp 65001 >nul
title 订单日报系统 - 生产模式

cd /d "%~dp0"

REM 设置 Python 使用 UTF-8 编码，避免中文环境下读取文件乱码
set PYTHONUTF8=1
set PIP_DEFAULT_ENCODING=utf-8

echo ========================================
echo   订单日报系统 - 生产模式启动
echo ========================================
echo.

REM ============================================
REM  第一步：读取 .env 配置文件（如果存在）
REM ============================================
echo [1/5] 读取配置...

if exist ".env" (
    echo [信息] 找到 .env 文件，正在加载配置...
    for /f "usebackq tokens=1,2 delims==" %%a in (".env") do (
        if not "%%a"=="" if not "%%~a"=="#" (
            set "%%a=%%b"
        )
    )
    echo [信息] 配置加载完成
) else if exist ".env.prod" (
    echo [信息] 找到 .env.prod 文件，正在加载配置...
    for /f "usebackq tokens=1,2 delims==" %%a in (".env.prod") do (
        if not "%%a"=="" if not "%%~a"=="#" (
            set "%%a=%%b"
        )
    )
    echo [信息] 配置加载完成
) else (
    echo [信息] 未找到 .env 文件，使用默认配置
)

REM ============================================
REM  第二步：检查 Python 是否安装
REM ============================================
echo.
echo [2/5] 检查 Python 环境...

where python >nul 2>&1
if errorlevel 1 (
    echo [错误] 未检测到 Python！
    echo.
    echo 请先安装 Python 3.10 或更高版本：
    echo   下载地址: https://www.python.org/downloads/
    echo   安装时请勾选 "Add Python to PATH"
    echo.
    pause
    exit /b 1
)

for /f "delims=" %%v in ('python --version 2^>^&1') do set PY_VERSION=%%v
echo [信息] Python 已安装: %PY_VERSION%

REM ============================================
REM  第三步：创建虚拟环境（如果不存在）
REM ============================================
echo.
echo [3/5] 检查虚拟环境...

if not exist ".venv\Scripts\python.exe" (
    echo [信息] 虚拟环境不存在，正在创建...
    python -m venv .venv
    if errorlevel 1 (
        echo [错误] 虚拟环境创建失败！
        pause
        exit /b 1
    )
    echo [信息] 虚拟环境创建成功
) else (
    echo [信息] 虚拟环境已存在
)

set PYTHON=.venv\Scripts\python.exe
set PIP=.venv\Scripts\pip.exe

REM ============================================
REM  第四步：安装依赖（只在缺少时安装）
REM ============================================
echo.
echo [4/5] 检查依赖...

REM 检查核心依赖是否已安装
%PYTHON% -c "import flask" 2>nul
if errorlevel 1 (
    set NEED_INSTALL=1
) else (
    set NEED_INSTALL=0
)

if "%NEED_INSTALL%"=="1" (
    echo [信息] 正在安装依赖，请稍候...
    %PIP% install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    if errorlevel 1 (
        echo [警告] 清华源安装失败，尝试官方源...
        %PIP% install -r requirements.txt
        if errorlevel 1 (
            echo [错误] 依赖安装失败！
            pause
            exit /b 1
        )
    )
    echo [信息] 依赖安装完成
) else (
    echo [信息] 依赖已就绪
)

REM ============================================
REM  第五步：启动服务
REM ============================================
echo.
echo [5/5] 启动服务...
echo.
echo [信息] 服务启动后，访问 http://localhost:5002
echo [信息] 按 Ctrl+C 停止服务
echo.
echo ========================================
echo.

%PYTHON% run_prod.py

if errorlevel 1 (
    echo.
    echo ========================================
    echo [错误] 服务异常退出，错误代码: %errorlevel%
    echo ========================================
    echo.
    pause
)
