/**
 * 面包屑导航组件
 * 根据当前路由自动生成分组 > 页面 的层级面包屑
 */

import { Link, useLocation } from 'react-router-dom'
import { ChevronRight, Home } from 'lucide-react'

interface BreadcrumbItem {
  group: string
  label: string
}

const ROUTE_MAP: Record<string, BreadcrumbItem> = {
  // 首页
  '/': { group: '首页', label: '工作台' },
  '/calendar': { group: '首页', label: '工作日历' },
  // 团队
  '/roster': { group: '团队', label: '花名册' },
  '/org-chart': { group: '团队', label: '组织架构' },
  '/esign': { group: '团队', label: '待签合同' },
  '/termination': { group: '团队', label: '离职管理' },
  '/training-records': { group: '团队', label: '培训记录' },
  '/performance-records': { group: '团队', label: '绩效考核' },
  '/disciplinary-records': { group: '团队', label: '违纪记录' },
  '/special-status': { group: '团队', label: '特殊员工' },
  // 时间
  '/attendance': { group: '时间', label: '考勤排班' },
  '/leave-approval': { group: '时间', label: '休假审批' },
  // 薪酬
  '/money': { group: '薪酬', label: '薪税管理' },
  '/social': { group: '薪酬', label: '社保公积金' },
  '/overtime': { group: '薪酬', label: '加班费计算' },
  '/commission-bonus': { group: '薪酬', label: '提成奖金' },
  '/salary-dashboard': { group: '薪酬', label: '薪酬分析' },
  // 福利保障
  '/commercial-insurance': { group: '福利保障', label: '商业保险' },
  '/benefits': { group: '福利保障', label: '员工福利' },
  // 合规
  '/risk-center': { group: '合规', label: '风险中心' },
  '/evidence': { group: '合规', label: '证据链条' },
  '/policies': { group: '合规', label: '规章制度' },
  // 工具
  '/tools/health-check': { group: '工具', label: '用工体检' },
  '/tools/medical-period': { group: '工具', label: '医疗期' },
  '/tools/annual-value': { group: '工具', label: '年度价值' },
  // 更多
  '/ai-assistant': { group: '更多', label: 'AI顾问' },
  '/templates': { group: '更多', label: '文本模板' },
  '/notifications': { group: '更多', label: '通知管理' },
  '/audit': { group: '更多', label: '操作日志' },
  '/company-files': { group: '更多', label: '公司文件' },
  '/settings': { group: '更多', label: '系统设置' },
  '/support': { group: '更多', label: '客服支持' },
}

export default function Breadcrumb() {
  const location = useLocation()
  const path = location.pathname
  const item = ROUTE_MAP[path]

  if (!item) return null

  return (
    <nav className="flex items-center gap-1 text-xs text-gray-400" aria-label="面包屑导航">
      <Link to="/" className="flex items-center gap-1 hover:text-gray-600 transition-colors">
        <Home className="w-3 h-3" />
        <span>首页</span>
      </Link>
      {item.group !== '首页' && (
        <>
          <ChevronRight className="w-3 h-3 text-gray-300" />
          <span className="text-gray-400">{item.group}</span>
        </>
      )}
      <ChevronRight className="w-3 h-3 text-gray-300" />
      <span className="text-gray-700 font-medium">{item.label}</span>
    </nav>
  )
}
