import type { ApiClient } from "@promobase/sdk-runtime"; import { Cursor } from "@promobase/sdk-runtime"; import { metaPagination } from "../../pagination.ts"; import type { VideoPollStatus } from "../enums.ts"; export interface VideoPollFields { close_after_voting: boolean; default_open: boolean; id: string; question: string; show_gradient: boolean; show_results: boolean; status: VideoPollStatus; } export interface VideoPollUpdateParams { action?: string; close_after_voting?: boolean; default_open?: boolean; show_gradient?: boolean; show_results?: boolean; [key: string]: unknown; } export function videoPollNode(client: ApiClient, id: string) { return { __path: id, __brand: undefined as unknown as VideoPollFields, get: (opts: { fields: F; params?: Record }) => client.get>(`${id}`, opts), update: (params: VideoPollUpdateParams) => client.post(`${id}`, params as Record), pollOptions: )[]>(opts: { fields: F; params?: Record }) => new Cursor, F[number]>>(client, `${id}/poll_options`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), }; }