import type { key_val } from '$lib/stores/ae_stores'; import { post_object } from './api_post_object'; interface SearchAeObjV3Params { api_cfg: any; obj_type: string; search_query: any; // Complex SearchQuery object: { q: string, and: [], or: [] } enabled?: 'all' | 'enabled' | 'not_enabled'; hidden?: 'all' | 'hidden' | 'not_hidden'; view?: string; for_obj_type?: string; for_obj_id?: string; order_by_li?: Record | null; limit?: number; offset?: number; delay_ms?: number; log_lvl?: number; } export async function search_ae_obj_v3({ api_cfg, obj_type, search_query, enabled = 'enabled', hidden = 'not_hidden', view = 'default', for_obj_type, for_obj_id, order_by_li = null, limit = 100, offset = 0, delay_ms = 0, log_lvl = 0 }: SearchAeObjV3Params) { const endpoint = `/v3/crud/${obj_type}/search`; // Hybrid search: Standard filters passed as query params const params: key_val = { enabled, hidden, view, limit, offset }; if (for_obj_type) params['for_obj_type'] = for_obj_type; if (for_obj_id) params['for_obj_id'] = for_obj_id; if (order_by_li) params['order_by_li'] = JSON.stringify(order_by_li); if (delay_ms > 0) params['delay_ms'] = delay_ms; if (log_lvl) { console.log('*** search_ae_obj_v3 ***'); console.log('Endpoint:', endpoint); console.log('Params:', params); console.log('Search Query:', search_query); } // Note: search_query is sent in the BODY via POST return await post_object({ api_cfg, endpoint, params, data: search_query, log_lvl }); }