#!/usr/bin/env bash
# データ監査 →（任意）正規化 → 期待値予想再取込 の順序を固定するラッパー
# JV 過去取得は Windows/JV-Link が必要なため本スクリプトでは自動実行しない
set -euo pipefail

ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
export PYTHONPATH="${ROOT}${PYTHONPATH:+:$PYTHONPATH}"

PY=(python3.11)
command -v "${PY[0]}" &>/dev/null || PY=(python3)

MODE="${1:-audit}"
LOG_DIR="${ROOT}/logs"
mkdir -p "$LOG_DIR"

run_audit() {
  "${PY[@]}" scripts/audit_data_coverage.py "${@:2}"
}

case "$MODE" in
  audit)
    run_audit "$@"
    ;;
  jv-backfill)
    exec "${ROOT}/scripts/jv_backfill_years.sh"
    ;;
  normalize-existing)
    # 既存 jv_raw から全件再正規化（重い）
    LOG="${LOG_DIR}/normalize_full.$(date +%Y%m%d_%H%M%S).log"
    echo "normalize -> ${LOG}"
    nohup "${PY[@]}" collectors/normalize_jv_raw.py --from-id 0 --batch-size 2000 >>"$LOG" 2>&1 &
    echo "PID=$!  tail -f ${LOG}"
    ;;
  repredict-ev|repredict-p6)
    FROM="${BACKFILL_FROM_DATE:-}"
    TO="${BACKFILL_TO_DATE:-}"
    EXTRA=()
    [[ -n "$FROM" ]] && EXTRA+=(--from-date "$FROM")
    [[ -n "$TO" ]] && EXTRA+=(--to-date "$TO")
    LOG="${LOG_DIR}/import_ev_forecast.$(date +%Y%m%d_%H%M%S).log"
    echo "import ev_forecast -> ${LOG}"
    nohup "${PY[@]}" scripts/import_all_race_ai_compare_profiles.py \
      --profile ev_forecast "${EXTRA[@]}" >>"$LOG" 2>&1 &
    echo "PID=$!  tail -f ${LOG}"
    ;;
  repredict-all)
    FROM="${BACKFILL_FROM_DATE:-2020-01-01}"
    TO="${BACKFILL_TO_DATE:-2026-12-31}"
    LOG="${LOG_DIR}/import_all_profiles.$(date +%Y%m%d_%H%M%S).log"
    echo "import all profiles (${FROM} .. ${TO}) -> ${LOG}"
    nohup "${PY[@]}" scripts/import_all_race_ai_compare_profiles.py \
      --profile all --from-date "$FROM" --to-date "$TO" >>"$LOG" 2>&1 &
    echo "PID=$!  tail -f ${LOG}"
    ;;
  *)
    echo "Usage: $0 audit|normalize-existing|repredict-ev|repredict-p6|repredict-all" >&2
    echo "  repredict-ev / repredict-p6: BACKFILL_FROM_DATE / BACKFILL_TO_DATE (YYYY-MM-DD) optional" >&2
    exit 1
    ;;
esac
