import { Shield, ClipboardList, DollarSign, CalendarIcon } from "lucide-react";
import { format } from "date-fns";

export const columns: ColumnDefinition[] = [
  {
    key: "id",
    title: "ID",
    type: "text",
    icon: Shield,
    sortable: true,
    searchable: true,
    filterable: true,
    description: "Unique ledger entry identifier",
    priority: 3,
    expandedOnly: true,
  },
  {
    key: "walletId",
    title: "Wallet ID",
    type: "text",
    icon: ClipboardList,
    sortable: true,
    searchable: true,
    filterable: true,
    description: "Associated wallet",
    priority: 2,
    expandedOnly: true,
  },
  {
    key: "index",
    title: "Index",
    type: "number",
    icon: ClipboardList,
    sortable: true,
    searchable: false,
    filterable: true,
    description: "Ledger index",
    priority: 1,
  },
  {
    key: "currency",
    title: "Currency",
    type: "text",
    icon: DollarSign,
    sortable: true,
    searchable: true,
    filterable: true,
    description: "Currency code",
    priority: 1,
  },
  {
    key: "chain",
    title: "Chain",
    type: "text",
    icon: ClipboardList,
    sortable: true,
    searchable: true,
    filterable: true,
    description: "Blockchain chain",
    priority: 1,
  },
  {
    key: "network",
    title: "Network",
    type: "text",
    icon: ClipboardList,
    sortable: true,
    searchable: true,
    filterable: true,
    description: "Network (e.g. mainnet)",
    priority: 1,
  },
  {
    key: "offchainDifference",
    title: "Offchain Diff",
    type: "number",
    icon: DollarSign,
    sortable: true,
    searchable: false,
    filterable: true,
    description: "Offchain balance difference",
    priority: 1,
    expandedOnly: true,
  },
  {
    key: "createdAt",
    title: "Created At",
    type: "date",
    icon: CalendarIcon,
    sortable: true,
    searchable: true,
    filterable: true,
    description: "Entry creation date",
    render: { type: "date", format: "PPP" },
    priority: 2,
    expandedOnly: true,
  },
];
