"use server";

import { revalidatePath } from "next/cache";
import { z } from "zod";
import { requireStudent } from "@/lib/auth/session";
import { prisma } from "@/lib/db/prisma";

export async function markNotificationRead(formData: FormData) {
  const session = await requireStudent();
  const parsed = z.string().cuid().safeParse(formData.get("id"));
  if (!parsed.success) return;
  await prisma.notification.updateMany({
    where: { id: parsed.data, userId: session.user.id },
    data: { readAt: new Date() },
  });
  revalidatePath("/belajar");
  revalidatePath("/belajar/notifikasi");
}

export async function markAllNotificationsRead() {
  const session = await requireStudent();
  await prisma.notification.updateMany({
    where: { userId: session.user.id, readAt: null },
    data: { readAt: new Date() },
  });
  revalidatePath("/belajar");
  revalidatePath("/belajar/notifikasi");
}
