"use server"; import { revalidatePath } from "next/cache"; import { createClient } from "@/lib/supabase/server"; type ActionResult = { success: boolean; error?: string }; const POSITION_PATHS = ["/positions", "/orgchart", "/"]; async function callRpc( fn: "create_position" | "delete_position", payload: Record, revalidate: string[] ): Promise { const supabase = await createClient(); const { error } = await supabase.rpc(fn, { payload }); if (error) return { success: false, error: error.message }; for (const path of revalidate) revalidatePath(path); return { success: true }; } export async function createPosition(payload: { org_unit_id: string; job_title: string; is_chief: boolean; valid_from: string; }): Promise { return callRpc("create_position", payload, POSITION_PATHS); } export async function deletePosition(positionId: string): Promise { return callRpc("delete_position", { position_id: positionId }, POSITION_PATHS); }