import type { StatisticsPivotDim } from "@mmapp/contracts/statistics" import type { StatisticsSliceKind } from "@/components/data-grids/statistics-breakdown-data-grid" export const STATISTICS_DIMS: { id: StatisticsSliceKind pivot: StatisticsPivotDim label: string }[] = [ { id: "users", pivot: "user", label: "Пользователи" }, { id: "servers", pivot: "server", label: "Серверы" }, { id: "interfaces", pivot: "iface", label: "Интерфейсы" }, { id: "countries", pivot: "country", label: "Страны" }, { id: "services", pivot: "service", label: "Сервисы" }, { id: "asns", pivot: "asn", label: "ASN" }, ] export function isStatisticsSliceKind(v: string): v is StatisticsSliceKind { return STATISTICS_DIMS.some((d) => d.id === v) } export function isStatisticsPivotDim(v: string): v is StatisticsPivotDim { return STATISTICS_DIMS.some((d) => d.pivot === v) } export function sliceKindToPivot(kind: StatisticsSliceKind): StatisticsPivotDim { return STATISTICS_DIMS.find((d) => d.id === kind)?.pivot ?? "user" } export function pivotToSliceKind(dim: StatisticsPivotDim): StatisticsSliceKind { return STATISTICS_DIMS.find((d) => d.pivot === dim)?.id ?? "users" }