/**
 * /test — 랜덤 병원 fixture를 디폴트로 채워 분석 플로우를 빠르게 검증하는 dev 페이지.
 *
 * - 진입 시 CLINICS 중 1개를 랜덤 선택해 form prefill
 * - "다른 병원 랜덤" 버튼으로 재선택 가능
 * - DevOnly 가드 아래 등록되어 localhost에서만 접근
 */
import { useNavigate } from 'react-router'
import MultiChannelInput, { type AnalyzePayload } from '@/features/channels/components/MultiChannelInput'
import { CLINICS } from '../fixtures/mockUrls'

// 현재는 뷰성형외과만 prefill 한다. CLINICS 의 다른 fixture 는 삭제하지 않고 보존.
const PINNED_LABEL = '뷰성형외과'

function pickIndex(): number {
  const i = CLINICS.findIndex((c) => c.label === PINNED_LABEL)
  return i >= 0 ? i : 0
}

export default function TestPrefillPage() {
  const navigate = useNavigate()
  const index = pickIndex()
  const clinic = CLINICS[index]

  const handleAnalyze = (payload: AnalyzePayload) => {
    navigate('/report/loading', {
      state: {
        url: payload.primaryUrl,
        manualChannels: payload.manualChannels,
      },
    })
  }

  return (
    <section className="min-h-screen pt-28 pb-12 px-6 bg-gradient-to-br from-indigo-50 via-purple-50 to-pink-50">
      <div className="max-w-4xl mx-auto">
        <div className="mb-8 flex items-center justify-between gap-4">
          <div>
            <div className="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-amber-100 text-amber-800 text-xs font-medium mb-3">
              DEV · /test
            </div>
            <h1 className="text-3xl font-bold text-primary-900">
              랜덤 병원 분석 테스트
            </h1>
            <p className="mt-2 text-sm text-slate-600">
              선택된 병원: <span className="font-semibold text-primary-900">{clinic.label}</span>
              {' '}<span className="text-slate-400">({index + 1} / {CLINICS.length})</span>
            </p>
          </div>
          {/* 현재 PINNED_LABEL 하나만 사용하므로 랜덤 버튼은 숨김.
              필요 시 pickIndex() 를 다시 randomize 하고 이 버튼을 복구. */}
        </div>

        <MultiChannelInput
          variant="hero"
          initialUrls={clinic.urls}
          onAnalyze={handleAnalyze}
        />
      </div>
    </section>
  )
}
