import type { ApiClient } from "@promobase/sdk-runtime"; import { Cursor } from "@promobase/sdk-runtime"; import { metaPagination } from "../../pagination.ts"; import type { ApplicationFields } from "./application.ts"; import type { CommerceMerchantSettingsSetupStatusFields } from "./commerce-merchant-settings-setup-status.ts"; import type { CommerceOrderFields } from "./commerce-order.ts"; import type { CommerceOrderTransactionDetailFields } from "./commerce-order-transaction-detail.ts"; import type { CommercePayoutFields } from "./commerce-payout.ts"; import type { ProductCatalogFields } from "./product-catalog.ts"; import type { ProfileFields } from "./profile.ts"; import type { ShopFields } from "./shop.ts"; export interface CommerceMerchantSettingsFields { checkout_config: string; contact_email: string; cta: string; display_name: string; facebook_channel: Record; id: string; instagram_channel: Record; korea_ftc_listing: string; merchant_page: ProfileFields; merchant_status: string; offsite_iab_checkout_enabled_countries: string[]; payment_provider: string; privacy_policy_localized: string; shops_ads_setup: Record; terms: string; } export interface CommerceMerchantSettingsListCommerceOrdersParams { filters?: string[]; state?: string[]; updated_after?: string; updated_before?: string; [key: string]: unknown; } export interface CommerceMerchantSettingsListCommercePayoutsParams { end_time?: string; start_time?: string; [key: string]: unknown; } export interface CommerceMerchantSettingsListCommerceTransactionsParams { end_time?: string; payout_reference_id?: string; start_time?: string; [key: string]: unknown; } export interface CommerceMerchantSettingsListReturnsParams { end_time_created?: string; merchant_return_id?: string; start_time_created?: string; statuses?: string[]; [key: string]: unknown; } export interface CommerceMerchantSettingsCreateShippingProfilesParams { handling_time?: Record; is_default?: boolean; is_default_shipping_profile?: boolean; name: string; reference_id?: string; shipping_destinations: Record[]; [key: string]: unknown; } export interface CommerceMerchantSettingsUpdateParams { checkout_config?: Record; korea_ftc_listing?: string; merchant_status?: string; privacy_policy_localized?: Record; [key: string]: unknown; } export function commerceMerchantSettingsNode(client: ApiClient, id: string) { return { __path: id, __brand: undefined as unknown as CommerceMerchantSettingsFields, get: (opts: { fields: F; params?: Record }) => client.get>(`${id}`, opts), update: (params: CommerceMerchantSettingsUpdateParams) => client.post(`${id}`, params as Record), commerceOrders: (opts: { fields: F; params?: CommerceMerchantSettingsListCommerceOrdersParams }) => new Cursor>(client, `${id}/commerce_orders`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), commercePayouts: (opts: { fields: F; params?: CommerceMerchantSettingsListCommercePayoutsParams }) => new Cursor>(client, `${id}/commerce_payouts`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), commerceTransactions: (opts: { fields: F; params?: CommerceMerchantSettingsListCommerceTransactionsParams }) => new Cursor>(client, `${id}/commerce_transactions`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), orderManagementApps: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/order_management_apps`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), productCatalogs: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/product_catalogs`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), returns: )[]>(opts: { fields: F; params?: CommerceMerchantSettingsListReturnsParams }) => new Cursor, F[number]>>(client, `${id}/returns`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), setupStatus: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/setup_status`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), createShippingProfile: (params: CommerceMerchantSettingsCreateShippingProfilesParams) => client.post>(`${id}/shipping_profiles`, params as Record), shops: (opts: { fields: F; params?: Record }) => new Cursor>(client, `${id}/shops`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), taxSettings: )[]>(opts: { fields: F; params?: Record }) => new Cursor, F[number]>>(client, `${id}/tax_settings`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), }; }