import type { StatisticsDto, StatisticsPivotDto, StatisticsPivotQuery, StatisticsQuery, } from "@mmapp/contracts/statistics" import { requestJson } from "@/shared/api/http-client" export type { StatisticsDto, StatisticsQuery, StatisticsPivotDto, StatisticsPivotQuery } export { STATISTICS_UNBOUND_USER_ID } from "@mmapp/contracts/statistics" export async function getStatistics( baseUrl: string, query: StatisticsQuery, ): Promise { const params = new URLSearchParams() params.set("from", query.from) params.set("to", query.to) if (query.serverId != null) params.set("serverId", String(query.serverId)) if (query.userId) params.set("userId", query.userId) if (query.iface) params.set("iface", query.iface) if (query.country) params.set("country", query.country) if (query.service) params.set("service", query.service) if (query.asn != null) params.set("asn", String(query.asn)) return requestJson(baseUrl, `/api/statistics?${params.toString()}`) } export async function getStatisticsPivot( baseUrl: string, query: StatisticsPivotQuery, ): Promise { const params = new URLSearchParams() params.set("from", query.from) params.set("to", query.to) params.set("row", query.row) params.set("col", query.col) params.set("metric", query.metric) if (query.serverId != null) params.set("serverId", String(query.serverId)) if (query.userId) params.set("userId", query.userId) if (query.iface) params.set("iface", query.iface) if (query.country) params.set("country", query.country) if (query.service) params.set("service", query.service) if (query.asn != null) params.set("asn", String(query.asn)) return requestJson(baseUrl, `/api/statistics/pivot?${params.toString()}`) }