export interface AdminBreadcrumbItem {
  label: string;
  to?: string;
}

/** 子页面顶栏面包屑（一级菜单 + 当前子页） */
export function resolveAdminBreadcrumb(
  path: string,
  t: (key: string) => string,
  query: Record<string, unknown> = {},
): AdminBreadcrumbItem[] | null {
  if (/^\/users\/agents\/[^/]+\/players/.test(path)) {
    return [
      { label: t('nav.agents_players'), to: '/users' },
      { label: t('breadcrumb.agent_direct_players') },
    ];
  }
  if (path === '/users/settings') {
    return [
      { label: t('nav.agents_players'), to: '/users' },
      { label: t('user.page_settings') },
    ];
  }
  if (/^\/matches\/leagues\/[^/]+/.test(path)) {
    return [
      { label: t('nav.matches'), to: '/matches' },
      { label: t('breadcrumb.league_fixtures') },
    ];
  }
  if (/^\/matches\/outrights\/leagues\/[^/]+/.test(path)) {
    return [
      { label: t('nav.matches'), to: '/matches/outrights' },
      { label: t('breadcrumb.league_outrights') },
    ];
  }
  if (/^\/settlement\/[^/]+/.test(path)) {
    const returnTo =
      typeof query.returnTo === 'string' && query.returnTo.startsWith('/')
        ? query.returnTo
        : '/matches';
    return [
      { label: t('nav.matches'), to: returnTo },
      { label: t('breadcrumb.settlement') },
    ];
  }
  if (/^\/matches\/[^/]+\/edit/.test(path)) {
    return [
      { label: t('nav.matches'), to: '/matches' },
      { label: t('breadcrumb.match_edit') },
    ];
  }
  if (/^\/matches\/[^/]+\/markets/.test(path)) {
    return [
      { label: t('nav.matches'), to: '/matches' },
      { label: t('breadcrumb.match_markets') },
    ];
  }
  if (path === '/dashboard/players') {
    return [
      { label: t('nav.dashboard'), to: '/' },
      { label: t('nav.dashboard.players') },
    ];
  }
  if (/^\/outrights\/[^/]+\/edit/.test(path)) {
    return [
      { label: t('nav.matches'), to: '/matches' },
      { label: t('nav.matches.outrights'), to: '/matches/outrights' },
    ];
  }
  return null;
}
