import { queryOptions } from "@tanstack/react-query"; import { jsonQuery } from "../apiAdapter"; export const tripListOptions = (filters: { month?: number; year?: number; vehicleId?: number; userId?: number; page?: number; perPage?: number; }) => queryOptions({ queryKey: [ "trips", "list", { month: filters.month, year: filters.year, vehicleId: filters.vehicleId, userId: filters.userId, page: filters.page, perPage: filters.perPage, }, ], queryFn: () => { const params = new URLSearchParams(); if (filters.month) params.set("month", String(filters.month)); if (filters.year) params.set("year", String(filters.year)); if (filters.vehicleId) params.set("vehicle_id", String(filters.vehicleId)); if (filters.userId) params.set("user_id", String(filters.userId)); if (filters.page) params.set("page", String(filters.page)); if (filters.perPage) params.set("per_page", String(filters.perPage)); const qs = params.toString(); return jsonQuery[]>( `/api/admin/trips${qs ? `?${qs}` : ""}`, ); }, }); export const tripVehiclesOptions = () => queryOptions({ queryKey: ["trips", "vehicles"], queryFn: () => jsonQuery[]>("/api/admin/vehicles"), staleTime: 2 * 60_000, }); export const tripUsersOptions = () => queryOptions({ queryKey: ["trips", "users"], queryFn: () => jsonQuery[]>("/api/admin/trips/users"), staleTime: 2 * 60_000, }); export const tripHistoryOptions = (filters: { month?: string; vehicleId?: number; userId?: number; }) => queryOptions({ queryKey: [ "trips", "history", { month: filters.month, vehicleId: filters.vehicleId, userId: filters.userId, }, ], queryFn: () => { const params = new URLSearchParams(); if (filters.month) params.set("month", filters.month); if (filters.vehicleId) params.set("vehicle_id", String(filters.vehicleId)); if (filters.userId) params.set("user_id", String(filters.userId)); const qs = params.toString(); return jsonQuery[]>( `/api/admin/trips${qs ? `?${qs}` : ""}`, ); }, });