internal/dashboard/frontend/src/types.ts

export type HoneypotEvent = {
  id: number;
  type: string;
  event: string;
  time: string;
  remote_addr?: string;
  remote_port?: number;
  dst_port?: number;
  fields?: Record<string, unknown>;
  domain?: string;
  country?: string;
  city?: string;
  latitude?: number;
  longitude?: number;
};

export type TopStats = {
  remote_addrs: { label: string; count: number }[];
  ports: { label: string; count: number }[];
  types: { label: string; count: number }[];
  domains: { label: string; count: number }[];
  countries: { label: string; count: number }[];
};

export type DashboardStats = {
  stats_24h: TopStats;
  stats_all: TopStats;
  count_24h: number;
  sparkline: { time: string; count: number }[];
};

export type TopNField = {
  label: string;
  count: number;
};

export type BlocklistEntry = {
  id: number;
  address: string;
  timestamp: string;
  expires: string;
  reason: string;
};

export type ItemList = {
  value: string | number;
  count: number;
  label?: string;
};