Files
tgex-frontend/lib/api/analytics.ts
2026-01-07 14:17:43 +03:00

64 lines
1.7 KiB
TypeScript

// ============================================================================
// Analytics API
// ============================================================================
import { api } from "./client";
import type {
PlacementAnalyticsItem,
CreativeAnalyticsItem,
ChannelAnalyticsItem,
SpendingAnalytics,
AnalyticsQueryParams,
SpendingAnalyticsQueryParams,
PaginatedResponse,
OverviewAnalytics,
OverviewAnalyticsQueryParams,
} from "@/lib/types/api";
export const analyticsApi = {
/**
* Get placements analytics
*/
placements: (workspaceId: string, params?: AnalyticsQueryParams) =>
api.get<PaginatedResponse<PlacementAnalyticsItem>>(
`/workspaces/${workspaceId}/analytics/placements`,
{ params }
),
/**
* Get creatives analytics
*/
creatives: (workspaceId: string, params?: AnalyticsQueryParams) =>
api.get<PaginatedResponse<CreativeAnalyticsItem>>(
`/workspaces/${workspaceId}/analytics/creatives`,
{ params }
),
/**
* Get channels analytics
*/
channels: (workspaceId: string, params?: AnalyticsQueryParams) =>
api.get<PaginatedResponse<ChannelAnalyticsItem>>(
`/workspaces/${workspaceId}/analytics/channels`,
{ params }
),
/**
* Get spending analytics (time-series data)
*/
spending: (workspaceId: string, params?: SpendingAnalyticsQueryParams) =>
api.get<SpendingAnalytics>(
`/workspaces/${workspaceId}/analytics/spending`,
{ params }
),
/**
* Overview analytics for dashboard
*/
overview: (workspaceId: string, params?: OverviewAnalyticsQueryParams) =>
api.get<OverviewAnalytics>(
`/workspaces/${workspaceId}/analytics/overview`,
{ params }
),
};