import type { ApiClient } from "@promobase/sdk-runtime"; import { Cursor } from "@promobase/sdk-runtime"; import { metaPagination } from "../../pagination.ts"; import type { AdsPixelFields } from "./ads-pixel.ts"; import type { ApplicationFields } from "./application.ts"; import type { BrandRequestFields } from "./brand-request.ts"; import type { BusinessFields } from "./business.ts"; import type { CustomConversionFields } from "./custom-conversion.ts"; import type { OfflineConversionDataSetFields } from "./offline-conversion-data-set.ts"; import type { PartnerStudyFields } from "./partner-study.ts"; export interface AdStudyObjectiveFields { id: string; is_primary: boolean; last_updated_results: string; name: string; results: string[]; type: string; } export interface AdStudyObjectiveUpdateParams { adspixels?: Record[]; applications?: Record[]; customconversions?: Record[]; is_primary?: boolean; name?: string; offline_conversion_data_sets?: Record[]; offsite_datasets?: Record[]; product_catalogs?: Record[]; product_sets?: Record[]; type?: string; [key: string]: unknown; } export function adStudyObjectiveNode(client: ApiClient, id: string) { return { __path: id, __brand: undefined as unknown as AdStudyObjectiveFields, get: (opts: { fields: F; params?: Record }) => client.get>(`${id}`, opts), update: (params: AdStudyObjectiveUpdateParams) => client.post(`${id}`, params as Record), adspixels: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/adspixels`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), applications: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/applications`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), brandRequests: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/brand_requests`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), customconversions: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/customconversions`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), offlineConversionDataSets: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/offline_conversion_data_sets`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), partnerPrivateStudies: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/partner_private_studies`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), partnerstudies: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/partnerstudies`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), }; }