// File: lib/services/search.service.ts import apiClient from "@/lib/api/client"; import { SearchQueryDto } from "@/types/dto/search/search-query.dto"; export const searchService = { /** * ค้นหาเอกสารทั้งระบบ (Full-text Search) * ใช้ Elasticsearch ผ่าน Backend */ search: async (query: SearchQueryDto) => { // ส่ง params แบบ flat ตาม DTO // GET /search?q=...&type=...&projectId=... const response = await apiClient.get("/search", { params: query }); return response.data; }, /** * Suggestion (Autocomplete) * ใช้ search endpoint แต่จำกัดจำนวน */ suggest: async (query: string) => { const response = await apiClient.get("/search", { params: { q: query, limit: 5 } }); // Assuming backend returns { items: [], ... } or just [] return response.data.items || response.data; }, /** * (Optional) Re-index ข้อมูลใหม่ กรณีข้อมูลไม่ตรง (Admin Only) */ reindex: async (type?: string) => { const response = await apiClient.post("/search/reindex", { type }); return response.data; } };