import { queryOptions } from "@tanstack/react-query"; import apiFetch from "../../utils/api"; import { jsonQuery } from "../apiAdapter"; export const dashboardOptions = () => queryOptions({ queryKey: ["dashboard"], queryFn: () => jsonQuery>("/api/admin/dashboard"), staleTime: 60_000, }); export const require2FAOptions = () => queryOptions({ queryKey: ["settings", "2fa"], queryFn: () => jsonQuery<{ require_2fa: boolean }>("/api/admin/totp/required"), }); export interface Session { id: number | string; is_current: boolean; device_info?: { icon?: string; browser?: string; os?: string; }; ip_address: string; created_at: string; } export const sessionsOptions = () => queryOptions({ queryKey: ["sessions"], queryFn: async (): Promise => { const response = await apiFetch("/api/admin/sessions"); const data = await response.json(); if (data.success) { return Array.isArray(data.data) ? data.data : data.data?.sessions || []; } throw new Error(data.error || "Nepodařilo se načíst relace"); }, });