import type { LucideIcon } from "lucide-react";
import {
  HandCoins,
  LayoutDashboard,
  MapPinned,
  ShoppingBasket,
  Sprout,
} from "lucide-react";
import type { AppLocale } from "@/lib/i18n";
import { td } from "@/lib/i18n/dashboard-labels";

export type DashboardNavId = "overview" | "finance" | "trade" | "identity" | "inputs";

export interface DashboardNavItem {
  id: DashboardNavId;
  href: string;
  icon: LucideIcon;
  label: string;
  moduleTitle: string;
}

export function getDashboardNavItems(locale: AppLocale): DashboardNavItem[] {
  return [
    {
      id: "overview",
      href: "/farmers/dashboard",
      icon: LayoutDashboard,
      label: td("overview", locale),
      moduleTitle: td("overview", locale),
    },
    {
      id: "finance",
      href: "/farmers/dashboard/finance",
      icon: HandCoins,
      label: td("finance", locale),
      moduleTitle: td("agnetFinance", locale),
    },
    {
      id: "trade",
      href: "/farmers/dashboard/trade",
      icon: ShoppingBasket,
      label: td("trade", locale),
      moduleTitle: td("agnetTrade", locale),
    },
    {
      id: "identity",
      href: "/farmers/dashboard/identity",
      icon: MapPinned,
      label: td("identity", locale),
      moduleTitle: td("agnetIdentity", locale),
    },
    {
      id: "inputs",
      href: "/farmers/dashboard/inputs",
      icon: Sprout,
      label: td("inputs", locale),
      moduleTitle: td("agnetInputs", locale),
    },
  ];
}

export function getActiveNavItem(
  pathname: string,
  items: DashboardNavItem[],
): DashboardNavItem {
  return (
    items.find((item) => item.href === pathname) ??
    items.find((item) => item.id === "overview")!
  );
}
