'use client'

import React from 'react'
import { useRouter } from 'next/navigation'
import { useTOMGenerator } from '@/lib/sdk/tom-generator'
import { ScopeRolesStep } from '@/components/sdk/tom-generator/steps/ScopeRolesStep'
import { TOM_GENERATOR_STEPS } from '@/lib/sdk/tom-generator/types'

/**
 * Step 1: Scope & Roles
 *
 * Collects company profile information including:
 * - Company name, industry, size
 * - GDPR role (Controller/Processor/Joint Controller)
 * - Products/Services
 * - DPO and IT Security contacts
 */
export default function ScopePage() {
  const router = useRouter()
  const { state, goToNextStep } = useTOMGenerator()

  const currentStepIndex = TOM_GENERATOR_STEPS.findIndex((s) => s.id === 'scope-roles')
  const nextStep = TOM_GENERATOR_STEPS[currentStepIndex + 1]

  // Handle step completion
  const handleStepComplete = () => {
    goToNextStep()
    if (nextStep) {
      router.push(nextStep.url)
    }
  }

  return (
    <div className="max-w-4xl mx-auto px-4 py-8">
      {/* Step Header */}
      <div className="mb-8">
        <div className="flex items-center gap-2 text-sm text-gray-500 mb-2">
          <span>Schritt 1 von 6</span>
          <span className="text-gray-300">|</span>
          <span>Scope & Rollen</span>
        </div>
        <h1 className="text-2xl font-bold text-gray-900">
          Unternehmens- und Rollendefinition
        </h1>
        <p className="mt-2 text-gray-600">
          Definieren Sie Ihr Unternehmen und Ihre Rolle in der Datenverarbeitung.
          Diese Informationen bestimmen, welche TOMs fuer Sie relevant sind.
        </p>
      </div>

      {/* Progress Indicator */}
      <div className="mb-8">
        <div className="flex items-center gap-2">
          {TOM_GENERATOR_STEPS.map((step, index) => {
            const stepState = state.steps.find((s) => s.id === step.id)
            const isCompleted = stepState?.completed
            const isCurrent = state.currentStep === step.id

            return (
              <React.Fragment key={step.id}>
                <button
                  onClick={() => router.push(step.url)}
                  className={`w-8 h-8 rounded-full flex items-center justify-center text-sm font-medium transition-all ${
                    isCompleted
                      ? 'bg-green-500 text-white'
                      : isCurrent
                        ? 'bg-blue-500 text-white'
                        : 'bg-gray-200 text-gray-500 hover:bg-gray-300'
                  }`}
                  title={step.name}
                >
                  {isCompleted ? (
                    <svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                      <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M5 13l4 4L19 7" />
                    </svg>
                  ) : (
                    index + 1
                  )}
                </button>
                {index < TOM_GENERATOR_STEPS.length - 1 && (
                  <div
                    className={`flex-1 h-1 rounded ${
                      isCompleted ? 'bg-green-500' : 'bg-gray-200'
                    }`}
                  />
                )}
              </React.Fragment>
            )
          })}
        </div>
      </div>

      {/* Scope Prefill Hint */}
      <div className="bg-purple-50 border border-purple-200 rounded-xl p-4 mb-4">
        <div className="flex items-start gap-3">
          <svg className="w-5 h-5 text-purple-600 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
            <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
          </svg>
          <div>
            <p className="text-sm text-purple-800">
              <span className="font-semibold">Tipp:</span> Wenn Sie bereits die Scope-Analyse ausgefuellt haben, werden relevante Felder
              (Branche, Groesse, Hosting, Verschluesselung) automatisch vorausgefuellt. Anpassungen sind jederzeit moeglich.
            </p>
          </div>
        </div>
      </div>

      {/* Step Content */}
      <div className="bg-white rounded-xl border border-gray-200 p-6">
        <ScopeRolesStep />
      </div>

      {/* Navigation */}
      <div className="flex justify-between mt-6">
        <button
          onClick={() => router.push('/sdk/tom-generator')}
          className="px-4 py-2 text-gray-600 hover:text-gray-900 transition-colors"
        >
          Zurueck zur Uebersicht
        </button>
        <button
          onClick={handleStepComplete}
          className="px-6 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors"
        >
          Weiter
        </button>
      </div>
    </div>
  )
}
