Files
tgex-frontend/lib/api/analytics.ts
2026-01-12 12:46:29 +03:00

75 lines
2.0 KiB
TypeScript

// ============================================================================
// Analytics API
// ============================================================================
import { api } from "./client";
import type {
PlacementAnalyticsItem,
CreativeAnalyticsItem,
ChannelAnalyticsItem,
SpendingAnalytics,
AnalyticsQueryParams,
SpendingAnalyticsQueryParams,
PaginatedResponse,
OverviewAnalytics,
OverviewAnalyticsQueryParams,
ProjectsAnalyticsResponse,
ProjectsAnalyticsQueryParams,
} 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 }
),
/**
* Get projects analytics (chart data with grouping)
*/
projects: (workspaceId: string, params: ProjectsAnalyticsQueryParams) =>
api.get<ProjectsAnalyticsResponse>(
`/workspaces/${workspaceId}/analytics/projects`,
{ params }
),
};