import {
  Package,
  RefreshCw,
  Shield,
  ClipboardCheck,
  Users,
  GitBranch,
  Tag,
  Database,
  FileText,
  CheckSquare,
} from 'lucide-react'
import type { BacklogCategory, BacklogItem } from './types'

export const categories: BacklogCategory[] = [
  {
    id: 'modules',
    name: 'Module Progress',
    icon: <Package className="w-5 h-5" />,
    color: 'text-violet-700',
    bgColor: 'bg-violet-100 border-violet-300',
    description: 'Fertigstellungsgrad aller Services & Module',
  },
  {
    id: 'cicd',
    name: 'CI/CD Pipelines',
    icon: <RefreshCw className="w-5 h-5" />,
    color: 'text-blue-700',
    bgColor: 'bg-blue-100 border-blue-300',
    description: 'Build, Test & Deployment Automation',
  },
  {
    id: 'security',
    name: 'Security & Vulnerability',
    icon: <Shield className="w-5 h-5" />,
    color: 'text-red-700',
    bgColor: 'bg-red-100 border-red-300',
    description: 'Security Scans, Dependency Checks & Penetration Testing',
  },
  {
    id: 'testing',
    name: 'Testing & Quality',
    icon: <ClipboardCheck className="w-5 h-5" />,
    color: 'text-emerald-700',
    bgColor: 'bg-emerald-100 border-emerald-300',
    description: 'Unit Tests, Integration Tests & E2E Testing',
  },
  {
    id: 'rbac',
    name: 'RBAC & Access Control',
    icon: <Users className="w-5 h-5" />,
    color: 'text-purple-700',
    bgColor: 'bg-purple-100 border-purple-300',
    description: 'Developer Roles, Permissions & Team Management',
  },
  {
    id: 'git',
    name: 'Git & Branch Protection',
    icon: <GitBranch className="w-5 h-5" />,
    color: 'text-orange-700',
    bgColor: 'bg-orange-100 border-orange-300',
    description: 'Protected Branches, Merge Requests & Code Reviews',
  },
  {
    id: 'release',
    name: 'Release Management',
    icon: <Tag className="w-5 h-5" />,
    color: 'text-green-700',
    bgColor: 'bg-green-100 border-green-300',
    description: 'Versioning, Changelog & Release Notes',
  },
  {
    id: 'data',
    name: 'Data Protection',
    icon: <Database className="w-5 h-5" />,
    color: 'text-cyan-700',
    bgColor: 'bg-cyan-100 border-cyan-300',
    description: 'Backup, Migration & Customer Data Safety',
  },
  {
    id: 'compliance',
    name: 'Compliance & SBOM',
    icon: <FileText className="w-5 h-5" />,
    color: 'text-teal-700',
    bgColor: 'bg-teal-100 border-teal-300',
    description: 'SBOM, Lizenzen & Open Source Compliance',
  },
  {
    id: 'approval',
    name: 'Approval Workflow',
    icon: <CheckSquare className="w-5 h-5" />,
    color: 'text-indigo-700',
    bgColor: 'bg-indigo-100 border-indigo-300',
    description: 'Developer Approval, QA Sign-off & Release Gates',
  },
]

export const statusLabels: Record<BacklogItem['status'], { label: string; color: string }> = {
  not_started: { label: 'Nicht begonnen', color: 'bg-slate-100 text-slate-600' },
  in_progress: { label: 'In Arbeit', color: 'bg-blue-100 text-blue-700' },
  review: { label: 'In Review', color: 'bg-yellow-100 text-yellow-700' },
  completed: { label: 'Abgeschlossen', color: 'bg-green-100 text-green-700' },
  blocked: { label: 'Blockiert', color: 'bg-red-100 text-red-700' },
}

export const priorityLabels: Record<BacklogItem['priority'], { label: string; color: string }> = {
  critical: { label: 'Kritisch', color: 'bg-red-500 text-white' },
  high: { label: 'Hoch', color: 'bg-orange-500 text-white' },
  medium: { label: 'Mittel', color: 'bg-yellow-500 text-white' },
  low: { label: 'Niedrig', color: 'bg-slate-500 text-white' },
}
