import type { ApiClient } from "@promobase/sdk-runtime"; import { Cursor } from "@promobase/sdk-runtime"; import { metaPagination } from "../../pagination.ts"; import type { AdAsyncRequestFields } from "./ad-async-request.ts"; import type { AdAsyncRequestSetNotificationResultFields } from "./ad-async-request-set-notification-result.ts"; import type { AdAsyncRequestSetNotificationMode } from "../enums.ts"; export interface AdAsyncRequestSetFields { canceled_count: number; created_time: string; error_count: number; id: string; in_progress_count: number; initial_count: number; is_completed: boolean; name: string; notification_mode: AdAsyncRequestSetNotificationMode; notification_result: AdAsyncRequestSetNotificationResultFields; notification_status: string; notification_uri: string; owner_id: string; success_count: number; total_count: number; updated_time: string; } export interface AdAsyncRequestSetListRequestsParams { statuses?: string[]; [key: string]: unknown; } export interface AdAsyncRequestSetUpdateParams { name?: string; notification_mode?: string; notification_uri?: string; [key: string]: unknown; } export function adAsyncRequestSetNode(client: ApiClient, id: string) { return { __path: id, __brand: undefined as unknown as AdAsyncRequestSetFields, get: (opts: { fields: F; params?: Record }) => client.get>(`${id}`, opts), update: (params: AdAsyncRequestSetUpdateParams) => client.post(`${id}`, params as Record), delete: () => client.delete(`${id}`, {}), requests: (opts: { fields: F; params?: AdAsyncRequestSetListRequestsParams }) => new Cursor>(client, `${id}/requests`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), }; }