"use server";

import { eq } from "drizzle-orm";
import { revalidatePath } from "next/cache";
import { z } from "zod";

import { requireOrgSession } from "@/lib/auth-guards";
import { db } from "@/lib/db";
import { user } from "@/lib/db/schema";

const ProfileSchema = z.object({
  name: z.string().trim().min(1).max(80),
});

export async function updateProfile(input: { name: string }) {
  const { session } = await requireOrgSession();
  const parsed = ProfileSchema.parse(input);

  await db
    .update(user)
    .set({ name: parsed.name, updatedAt: new Date() })
    .where(eq(user.id, session.user.id));
  revalidatePath("/settings/profile");
  revalidatePath("/", "layout");
}
