import type { ApiClient } from "@promobase/sdk-runtime"; import { Cursor } from "@promobase/sdk-runtime"; import { metaPagination } from "../../pagination.ts"; import type { AdAccountFields } from "./ad-account.ts"; import type { AdsPixelFields } from "./ads-pixel.ts"; import type { ApplicationFields } from "./application.ts"; import type { AssignedUserFields } from "./assigned-user.ts"; import type { BusinessFields } from "./business.ts"; import type { CustomConversionFields } from "./custom-conversion.ts"; import type { IGUserFields } from "./ig-user.ts"; import type { PageFields } from "./page.ts"; import type { ProductCatalogFields } from "./product-catalog.ts"; export interface BusinessAssetGroupFields { id: string; name: string; owner_business: BusinessFields; } export interface BusinessAssetGroupDeleteAssignedUsersParams { user: number; [key: string]: unknown; } export interface BusinessAssetGroupListAssignedUsersParams { business: string; [key: string]: unknown; } export interface BusinessAssetGroupCreateAssignedUsersParams { adaccount_tasks?: string[]; offline_conversion_data_set_tasks?: string[]; page_tasks?: string[]; pixel_tasks?: string[]; user: number; [key: string]: unknown; } export interface BusinessAssetGroupDeleteContainedAdaccountsParams { asset_id: string; [key: string]: unknown; } export interface BusinessAssetGroupCreateContainedAdaccountsParams { asset_id: string; [key: string]: unknown; } export interface BusinessAssetGroupDeleteContainedApplicationsParams { asset_id: string; [key: string]: unknown; } export interface BusinessAssetGroupCreateContainedApplicationsParams { asset_id: string; [key: string]: unknown; } export interface BusinessAssetGroupDeleteContainedCustomConversionsParams { asset_id: string; [key: string]: unknown; } export interface BusinessAssetGroupCreateContainedCustomConversionsParams { asset_id: string; [key: string]: unknown; } export interface BusinessAssetGroupDeleteContainedInstagramAccountsParams { asset_id: string; [key: string]: unknown; } export interface BusinessAssetGroupCreateContainedInstagramAccountsParams { asset_id: string; [key: string]: unknown; } export interface BusinessAssetGroupDeleteContainedPagesParams { asset_id: string; [key: string]: unknown; } export interface BusinessAssetGroupCreateContainedPagesParams { asset_id: string; [key: string]: unknown; } export interface BusinessAssetGroupDeleteContainedPixelsParams { asset_id: string; [key: string]: unknown; } export interface BusinessAssetGroupCreateContainedPixelsParams { asset_id: string; [key: string]: unknown; } export interface BusinessAssetGroupDeleteContainedProductCatalogsParams { asset_id: string; [key: string]: unknown; } export interface BusinessAssetGroupCreateContainedProductCatalogsParams { asset_id: string; [key: string]: unknown; } export interface BusinessAssetGroupUpdateParams { name?: string; [key: string]: unknown; } export function businessAssetGroupNode(client: ApiClient, id: string) { return { __path: id, __brand: undefined as unknown as BusinessAssetGroupFields, get: (opts: { fields: F; params?: Record }) => client.get>(`${id}`, opts), update: (params: BusinessAssetGroupUpdateParams) => client.post(`${id}`, params as Record), assignedUsers: { __path: `${id}/assigned_users`, __brand: undefined as unknown as AssignedUserFields, list: (opts: { fields: F; params?: BusinessAssetGroupListAssignedUsersParams }) => new Cursor>(client, `${id}/assigned_users`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), create: (params: BusinessAssetGroupCreateAssignedUsersParams) => client.post(`${id}/assigned_users`, params as Record), delete: (params: BusinessAssetGroupDeleteAssignedUsersParams) => client.delete(`${id}/assigned_users`, params as Record ?? {}), }, containedAdaccounts: { __path: `${id}/contained_adaccounts`, __brand: undefined as unknown as AdAccountFields, list: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/contained_adaccounts`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), create: (params: BusinessAssetGroupCreateContainedAdaccountsParams) => client.post(`${id}/contained_adaccounts`, params as Record), delete: (params: BusinessAssetGroupDeleteContainedAdaccountsParams) => client.delete(`${id}/contained_adaccounts`, params as Record ?? {}), }, containedApplications: { __path: `${id}/contained_applications`, __brand: undefined as unknown as ApplicationFields, list: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/contained_applications`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), create: (params: BusinessAssetGroupCreateContainedApplicationsParams) => client.post(`${id}/contained_applications`, params as Record), delete: (params: BusinessAssetGroupDeleteContainedApplicationsParams) => client.delete(`${id}/contained_applications`, params as Record ?? {}), }, containedCustomConversions: { __path: `${id}/contained_custom_conversions`, __brand: undefined as unknown as CustomConversionFields, list: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/contained_custom_conversions`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), create: (params: BusinessAssetGroupCreateContainedCustomConversionsParams) => client.post(`${id}/contained_custom_conversions`, params as Record), delete: (params: BusinessAssetGroupDeleteContainedCustomConversionsParams) => client.delete(`${id}/contained_custom_conversions`, params as Record ?? {}), }, containedInstagramAccounts: { __path: `${id}/contained_instagram_accounts`, __brand: undefined as unknown as IGUserFields, list: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/contained_instagram_accounts`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), create: (params: BusinessAssetGroupCreateContainedInstagramAccountsParams) => client.post(`${id}/contained_instagram_accounts`, params as Record), delete: (params: BusinessAssetGroupDeleteContainedInstagramAccountsParams) => client.delete(`${id}/contained_instagram_accounts`, params as Record ?? {}), }, containedPages: { __path: `${id}/contained_pages`, __brand: undefined as unknown as PageFields, list: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/contained_pages`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), create: (params: BusinessAssetGroupCreateContainedPagesParams) => client.post(`${id}/contained_pages`, params as Record), delete: (params: BusinessAssetGroupDeleteContainedPagesParams) => client.delete(`${id}/contained_pages`, params as Record ?? {}), }, containedPixels: { __path: `${id}/contained_pixels`, __brand: undefined as unknown as AdsPixelFields, list: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/contained_pixels`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), create: (params: BusinessAssetGroupCreateContainedPixelsParams) => client.post(`${id}/contained_pixels`, params as Record), delete: (params: BusinessAssetGroupDeleteContainedPixelsParams) => client.delete(`${id}/contained_pixels`, params as Record ?? {}), }, containedProductCatalogs: { __path: `${id}/contained_product_catalogs`, __brand: undefined as unknown as ProductCatalogFields, list: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/contained_product_catalogs`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), create: (params: BusinessAssetGroupCreateContainedProductCatalogsParams) => client.post(`${id}/contained_product_catalogs`, params as Record), delete: (params: BusinessAssetGroupDeleteContainedProductCatalogsParams) => client.delete(`${id}/contained_product_catalogs`, params as Record ?? {}), }, }; }