import React, { memo } from "react";
import { MappedStatusBadge, type StatusBadgeProps } from "@/components/ui/StatusBadge";

type OrderStatus = "completed" | "processing" | "open" | string;

interface OrderStatusBadgeProps {
  status: OrderStatus;
}

const statusMap: Record<
  string,
  { label: string; status: StatusBadgeProps["status"] }
> = {
  completed: {
    label: "Abgeschlossen",
    status: "info",
  },
  processing: {
    label: "In Bearbeitung",
    status: "warning",
  },
  open: {
    label: "Offen",
    status: "default",
  },
};

/**
 * ⚡ Optimization: Memoized OrderStatusBadge
 * Refactored to use the generic MappedStatusBadge primitive for better composition.
 */
export const OrderStatusBadge = memo(({ status }: OrderStatusBadgeProps) => {
  return <MappedStatusBadge status={status} mapping={statusMap} />;
});

OrderStatusBadge.displayName = "OrderStatusBadge";
