"""측정 스크립트 공통 — 어디서 실행하든 backend/.env 를 읽게 하고,
못 읽었으면 **조용히 넘어가지 않고 세운다**.

★2026-08-25 실측 사고: `config.py` 의 `env_file=".env"` 는 **상대 경로**다.
작업 디렉토리가 backend 가 아니면 설정이 통째로 비고 코드의 기본값
(`localhost:5173` · 프로젝트 `theroad`)으로 떨어진다. 그래서

  - 있지도 않은 로컬 서버에 붙어 「연결 거부」 → Opik 이 죽은 줄 알았다
    (실제 Opik 은 192.168.133.87 에서 멀쩡히 돌고 있었다)
  - 더 나쁜 갈래: 프로젝트 이름이 `theroad` 로 떨어지면 **다른 프로젝트를
    조회해 「0건」** 이 나온다. 서버가 200 을 주므로 오류도 안 난다.

uvicorn 은 backend cwd 에서 띄우므로 프로덕션은 무사하다 — 이 함정은
저장소 루트에서 돌리는 도구 쪽에만 있다.
"""
import os
import sys

ROOT = "/Users/manta/Documents/Projects/TheRoad-I1"
BACKEND = f"{ROOT}/backend"

os.chdir(BACKEND)                       # ★ .env 를 찾게 하는 유일한 조건
for p in (ROOT, BACKEND):
    if p not in sys.path:
        sys.path.insert(0, p)

from app.core.config import settings  # noqa: E402


def opik_target():
    """(base_url, workspace, project). 설정을 못 읽었으면 즉시 세운다."""
    base = getattr(settings, "opik_url_override", "")
    proj = getattr(settings, "opik_project_name", "")
    if not base or not proj:
        raise SystemExit(
            f"[설정 미로드] base={base!r} project={proj!r} — "
            f"{BACKEND}/.env 를 못 읽었다. 기본값으로 재면 엉뚱한 곳을 "
            f"조회하고 「0건」이 나온다.")
    return base, (getattr(settings, "opik_workspace", "") or "default"), proj
