'use client'

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

/**
 * Step 5: Risk & Protection Level
 *
 * Assesses risk and protection requirements including:
 * - CIA Assessment (Confidentiality/Integrity/Availability, 1-5 each)
 * - Calculated protection level
 * - Special risks
 * - Regulatory requirements
 * - DSFA indicator (automatic)
 */
export default function RiskPage() {
  const router = useRouter()
  const { state, goToNextStep, goToPreviousStep } = useTOMGenerator()

  const currentStepIndex = TOM_GENERATOR_STEPS.findIndex((s) => s.id === 'risk-protection')
  const prevStep = TOM_GENERATOR_STEPS[currentStepIndex - 1]
  const nextStep = TOM_GENERATOR_STEPS[currentStepIndex + 1]

  const handleNext = () => {
    goToNextStep()
    if (nextStep) {
      router.push(nextStep.url)
    }
  }

  const handleBack = () => {
    goToPreviousStep()
    if (prevStep) {
      router.push(prevStep.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 5 von 6</span>
          <span className="text-gray-300">|</span>
          <span>Risiko & Schutzbedarf</span>
        </div>
        <h1 className="text-2xl font-bold text-gray-900">
          Risikobewertung & Schutzbedarf
        </h1>
        <p className="mt-2 text-gray-600">
          Bewerten Sie die Schutzziele (CIA) fuer Ihre Datenverarbeitung.
          Der ermittelte Schutzbedarf bestimmt die Intensitaet der erforderlichen Massnahmen.
        </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>

      {/* CIA Info Box */}
      <div className="mb-6 p-4 bg-blue-50 rounded-lg border border-blue-200">
        <div className="flex gap-3">
          <svg className="w-5 h-5 text-blue-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>
            <div className="font-medium text-blue-900">CIA-Triade</div>
            <p className="text-sm text-blue-700 mt-1">
              <strong>Vertraulichkeit</strong>: Schutz vor unbefugtem Zugriff |
              <strong> Integritaet</strong>: Schutz vor unbefugter Aenderung |
              <strong> Verfuegbarkeit</strong>: Sicherstellung des Zugriffs
            </p>
          </div>
        </div>
      </div>

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

      {/* Navigation */}
      <div className="flex justify-between mt-6">
        <button
          onClick={handleBack}
          className="px-4 py-2 text-gray-600 hover:text-gray-900 transition-colors flex items-center gap-2"
        >
          <svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
            <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M15 19l-7-7 7-7" />
          </svg>
          Zurueck
        </button>
        <button
          onClick={handleNext}
          className="px-6 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors flex items-center gap-2"
        >
          Weiter
          <svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
            <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" />
          </svg>
        </button>
      </div>
    </div>
  )
}
