"""MiniTIAS 照明均一性評価 HTML レポート生成スクリプト.

使い方:
    python scripts/generate_report.py
    python scripts/generate_report.py --output output/
    python scripts/generate_report.py --output output/ \\
        --template config/templates/report.html
"""

import argparse
import sys
from pathlib import Path

# プロジェクトルートを sys.path に追加（スクリプトを任意の場所から実行できるよう）
PROJECT_ROOT = Path(__file__).resolve().parent.parent
sys.path.insert(0, str(PROJECT_ROOT))

from src.export.report import build_report_context, render_html_report  # noqa: E402


def main() -> None:
    """エントリーポイント."""
    parser = argparse.ArgumentParser(
        description="MiniTIAS 照明均一性評価の HTML レポートを生成する．"
    )
    parser.add_argument(
        "--output",
        default=str(PROJECT_ROOT / "output"),
        help="出力ディレクトリのパス（デフォルト: output/）",
    )
    parser.add_argument(
        "--template",
        default=str(PROJECT_ROOT / "config" / "templates" / "report.html"),
        help="Jinja2 テンプレートのパス（デフォルト: config/templates/report.html）",
    )
    args = parser.parse_args()

    output_base = Path(args.output)
    summary_csv = str(output_base / "results" / "summary_uniformity.csv")
    spatial_csv = str(output_base / "results" / "summary_spatial.csv")
    figures_dir = str(output_base / "figures")
    report_output = str(output_base / "reports" / "uniformity_report.html")

    print("HTML レポートを生成します...")
    print(f"  均一性 CSV  : {summary_csv}")
    print(f"  空間解析 CSV: {spatial_csv}")
    print(f"  図ディレクトリ: {figures_dir}")
    print(f"  テンプレート: {args.template}")

    try:
        context = build_report_context(summary_csv, spatial_csv, figures_dir)
    except FileNotFoundError as e:
        print(f"エラー: {e}")
        print("先に run_uniformity.py でバッチ解析を実行してください．")
        sys.exit(1)

    render_html_report(context, args.template, report_output)
    print(f"レポート生成完了: {report_output}")


if __name__ == "__main__":
    main()
