import { apiRequestData } from "./http"; export type AiStatusResponse = { enabled: boolean; envEnabled: boolean; featureFlag: { key: string; effectiveEnabled: boolean; effectiveReason: string; }; provider: { type: string; model: string | null; }; permissions: { canAccess: boolean; }; }; export type AiRiskHint = { level: "low" | "medium" | "high"; code: string; title: string; detail: string; }; export type AiNextAction = { code: string; label: string; reason: string; }; export type AiSuggestionResponse = { targetType: "reimbursement" | "purchase_request" | "asset_card"; targetId: string; summary: string; riskHints: AiRiskHint[]; nextActions: AiNextAction[]; sourceSnapshot: Record; providerMeta: { provider: "mock" | "http" | string; model: string | null; promptHash: string; tokenUsage: { promptTokens: number | null; completionTokens: number | null; totalTokens: number | null; }; }; generatedAt: string; }; export async function fetchAiStatus() { return apiRequestData("/api/ai/status"); } export async function fetchReimbursementSuggestion(reimbursementId: string) { return apiRequestData(`/api/ai/suggestions/reimbursements/${reimbursementId}`, { method: "POST", body: JSON.stringify({}), }); } export async function fetchPurchaseSuggestion(purchaseRequestId: string) { return apiRequestData( `/api/ai/suggestions/purchase-requests/${purchaseRequestId}`, { method: "POST", body: JSON.stringify({}), }, ); } export async function fetchAssetSuggestion(assetId: string) { return apiRequestData(`/api/ai/suggestions/assets/${assetId}`, { method: "POST", body: JSON.stringify({}), }); }