"use server"; import { revalidatePath } from "next/cache"; import { currentUserId } from "@/lib/auth/session"; import { runMutation, type ActionResult } from "@/lib/db/rpc"; /** * Eine Organisationseinheit unter einer bestehenden anlegen. * * Bewusst die einzige Änderung an der Struktur, die es aus der Anwendung * heraus gibt. Umbenennen, verschieben und schliessen fehlen nicht aus * Zeitmangel: org_units.parent_id trägt kein Datum, ein Verschieben änderte * damit auch jede Auswertung auf einen vergangenen Stichtag. Siehe Migration * 20260929120000. */ export async function createOrgUnit(payload: { parent_id: string; org_number: string; name: string; unit_type: "Bereich" | "Abteilung" | "Team"; valid_from: string; /** Leer lassen heisst: die Einheit entsteht ohne Leitung. */ leitung_taetigkeit?: string; }): Promise { const result = await runMutation(await currentUserId(), "create_org_unit", payload); if (!result.success) return result; // Die Einheit taucht in drei Ansichten auf, und in allen dreien wäre sie // sonst erst nach dem nächsten harten Neuladen zu sehen. for (const path of ["/orgchart", "/positions", "/"]) revalidatePath(path); return result; }