import { apiDelete, apiGet, apiPost } from '@/lib/api-client'; import { backendResourceFlowSchema, createResourceFlowRequestSchema, type BackendResourceFlow, type CreateResourceFlowRequest, } from '@/schemas/backend/resource-flow'; /** * Get resource flow by ID */ export async function getResourceFlowById(id: string): Promise { const data = await apiGet(`/resources/${id}`); return backendResourceFlowSchema.parse(data); } /** * Get resource flows by site ID */ export async function getResourceFlowsBySite(siteId: string): Promise { const data = await apiGet(`/resources/site/${siteId}`); return data.map((flow) => backendResourceFlowSchema.parse(flow)); } /** * Get resource flows by organization ID * Resource flows belong to Organizations (not just Businesses) */ export async function getResourceFlowsByOrganization( organizationId: string ): Promise { const data = await apiGet(`/resources/organization/${organizationId}`); return data.map((flow) => backendResourceFlowSchema.parse(flow)); } /** * @deprecated Use getResourceFlowsByOrganization instead * Kept for backwards compatibility during migration */ export const getResourceFlowsByBusiness = getResourceFlowsByOrganization; /** * Create a new resource flow */ export async function createResourceFlow( request: CreateResourceFlowRequest ): Promise { const validated = createResourceFlowRequestSchema.parse(request); const data = await apiPost('/resources', validated); return backendResourceFlowSchema.parse(data); } /** * Delete a resource flow */ export async function deleteResourceFlow(id: string): Promise { await apiDelete(`/resources/${id}`); }