import bcrypt from "bcryptjs";
import { cookies } from "next/headers";
import { prisma } from "@/lib/prisma";

const cookieName = "elit_admin_session";

export async function validateAdmin(email: string, password: string) {
  const admin = await prisma.adminUser.findUnique({ where: { email } });
  if (!admin) return null;
  const ok = await bcrypt.compare(password, admin.passwordHash);
  return ok ? admin : null;
}

export function setAdminSession(adminId: string) {
  cookies().set(cookieName, adminId, {
    httpOnly: true,
    sameSite: "lax",
    secure: process.env.NODE_ENV === "production",
    path: "/",
    maxAge: 60 * 60 * 8
  });
}

export function clearAdminSession() {
  cookies().delete(cookieName);
}

export async function currentAdmin() {
  const id = cookies().get(cookieName)?.value;
  if (!id) return null;
  try {
    return await prisma.adminUser.findUnique({ where: { id } });
  } catch {
    return null;
  }
}
