# -*- coding: utf-8 -*-
"""
莱塔萝数据看板一键启动器
"""
import subprocess, webbrowser, time, os, sys

BASE = os.path.dirname(os.path.abspath(__file__))
PORT = 8899
sys.stdout.reconfigure(encoding='utf-8', errors='replace')

def main():
    print("=" * 40)
    print("莱塔萝 - 门店数据看板")
    print("=" * 40)

    print("\n[1/2] 更新数据...")
    subprocess.run(
        [sys.executable, os.path.join(BASE, "generate_dashboard_data.py")],
        cwd=BASE
    )

    print("\n[2/2] 启动看板...")
    url = f"http://localhost:{PORT}/dashboard.html"
    print(f"  浏览器打开: {url}")
    print("  关闭本窗口即停止服务")

    server = subprocess.Popen(
        [sys.executable, "-m", "http.server", str(PORT)],
        cwd=BASE,
        stdout=subprocess.DEVNULL,
        stderr=subprocess.DEVNULL
    )

    time.sleep(1)
    webbrowser.open(url)

    try:
        server.wait()
    except KeyboardInterrupt:
        server.terminate()
    except:
        server.terminate()

if __name__ == "__main__":
    main()
