// Per-user usage + quota helpers. import type { ArcadiaClient } from "@crema/arcadia-client" export interface UserUsage { storage_used_bytes: number object_count: number } export interface UserQuota { id: string tenant_id: string user_id: string storage_limit_bytes: number | null storage_used_bytes: number object_count_limit: number | null object_count: number storage_remaining: number | null objects_remaining: number | null storage_usage_percentage: number | null object_count_usage_percentage: number | null storage_exceeded: boolean object_count_exceeded: boolean quota_exceeded: boolean metadata: Record last_calculated_at: string | null inserted_at: string updated_at: string } export async function getUserUsage( arcadia: ArcadiaClient, userId: string, ): Promise { const res = await arcadia.GET<{ data: UserUsage }>( `/api/v1/users/${userId}/usage`, ) return res.data } export async function getUserQuota( arcadia: ArcadiaClient, userId: string, ): Promise { try { const res = await arcadia.GET<{ data: UserQuota }>( `/api/v1/users/${userId}/quota`, ) return res.data } catch (err) { // 404 == no quota set for this user. Treat as null rather than throwing. const msg = err instanceof Error ? err.message : String(err) if (/404|not[_ ]found/i.test(msg)) return null throw err } }