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 { BusinessAssetGroupFields } from "./business-asset-group.ts"; import type { PageFields } from "./page.ts"; import type { ProductCatalogFields } from "./product-catalog.ts"; import type { UserFields } from "./user.ts"; import type { WhatsAppBusinessAccountFields } from "./whats-app-business-account.ts"; export interface SystemUserFields { created_by: UserFields; created_time: string; finance_permission: string; id: string; ip_permission: string; name: string; } export interface SystemUserListAssignedBusinessAssetGroupsParams { contained_asset_id?: string; [key: string]: unknown; } export interface SystemUserListAssignedPagesParams { pages?: number[]; [key: string]: unknown; } export function systemUserNode(client: ApiClient, id: string) { return { __path: id, __brand: undefined as unknown as SystemUserFields, get: (opts: { fields: F; params?: Record }) => client.get>(`${id}`, opts), assignedAdAccounts: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/assigned_ad_accounts`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), assignedBusinessAssetGroups: (opts: { fields: F; params?: SystemUserListAssignedBusinessAssetGroupsParams }) => new Cursor>(client, `${id}/assigned_business_asset_groups`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), assignedPages: (opts: { fields: F; params?: SystemUserListAssignedPagesParams }) => new Cursor>(client, `${id}/assigned_pages`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), assignedProductCatalogs: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/assigned_product_catalogs`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), assignedWhatsappBusinessAccounts: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/assigned_whatsapp_business_accounts`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), }; }