import type { ApiClient } from "@promobase/sdk-runtime"; import { Cursor } from "@promobase/sdk-runtime"; import { metaPagination } from "../../pagination.ts"; import type { AdNetworkAnalyticsAsyncQueryResultFields } from "./ad-network-analytics-async-query-result.ts"; import type { AdNetworkAnalyticsSyncQueryResultFields } from "./ad-network-analytics-sync-query-result.ts"; import type { BusinessFields } from "./business.ts"; export interface AdMonetizationPropertyFields { owner_business: BusinessFields; } export interface AdMonetizationPropertyListAdnetworkanalyticsParams { aggregation_period?: string; breakdowns?: string[]; filters?: Record[]; limit?: number; metrics: string[]; ordering_column?: string; ordering_type?: string; should_include_until?: boolean; since?: string; until?: string; [key: string]: unknown; } export interface AdMonetizationPropertyCreateAdnetworkanalyticsParams { aggregation_period?: string; breakdowns?: string[]; filters?: Record[]; limit?: number; metrics: string[]; ordering_column?: string; ordering_type?: string; since?: string; until?: string; [key: string]: unknown; } export interface AdMonetizationPropertyListAdnetworkanalyticsResultsParams { query_ids?: string[]; [key: string]: unknown; } export function adMonetizationPropertyNode(client: ApiClient, id: string) { return { __path: id, __brand: undefined as unknown as AdMonetizationPropertyFields, get: (opts: { fields: F; params?: Record }) => client.get>(`${id}`, opts), adnetworkanalytics: { __path: `${id}/adnetworkanalytics`, __brand: undefined as unknown as AdNetworkAnalyticsSyncQueryResultFields, list: (opts: { fields: F; params?: AdMonetizationPropertyListAdnetworkanalyticsParams }) => new Cursor>(client, `${id}/adnetworkanalytics`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), create: (params: AdMonetizationPropertyCreateAdnetworkanalyticsParams) => client.post(`${id}/adnetworkanalytics`, params as Record), }, adnetworkanalyticsResults: (opts: { fields: F; params?: AdMonetizationPropertyListAdnetworkanalyticsResultsParams }) => new Cursor>(client, `${id}/adnetworkanalytics_results`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), }; }