/* eslint-disable @typescript-eslint/no-unused-vars */ import { getApiBaseUrl } from "@/components/main/BaseUrl"; export async function fetchBillboards( page: number, limit: number, filters: { province?: string; city?: string; category?: string; sort?: string; search?: string; }, token: string ) { const validFilters = Object.entries(filters || {}) .filter(([_, value]) => value !== undefined && value !== "") .reduce((acc, [key, value]) => { acc[key] = value; return acc; }, {} as Record); const queryParams = new URLSearchParams({ page: page.toString(), limit: limit.toString(), ...validFilters, timestamp: Date.now().toString(), // اضافه کردن timestamp برای جلوگیری از کش }).toString(); const apiUrl = `${getApiBaseUrl()}/advertising/web?${queryParams}`; const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 90_000); let response: Response; try { response = await fetch(apiUrl, { cache: "no-store", signal: controller.signal, headers: { Authorization: token ? `Bearer ${token}` : "", }, }); } catch (error) { console.error("[fetchBillboards] fetch failed:", apiUrl, error); return { advertisings: [], totalItems: 0, totalPages: 0 }; } finally { clearTimeout(timeoutId); } if (!response.ok) { console.error("[fetchBillboards] bad response:", response.status, apiUrl); return { advertisings: [], totalItems: 0, totalPages: 0 }; } return response.json(); }