import { type NextRequest } from "next/server";
import { prisma } from "@/lib/db";
import { getSession } from "@/lib/auth";
import bcrypt from "bcryptjs";

export async function POST(req: NextRequest) {
  try {
    const { username, password } = await req.json();
    if (!username || !password) {
      return Response.json({ error: "نام کاربری و رمز عبور الزامی است" }, { status: 400 });
    }

    const user = await prisma.adminUser.findUnique({ where: { username } });
    if (!user) {
      return Response.json({ error: "نام کاربری یا رمز عبور اشتباه است" }, { status: 401 });
    }

    const valid = await bcrypt.compare(password, user.password);
    if (!valid) {
      return Response.json({ error: "نام کاربری یا رمز عبور اشتباه است" }, { status: 401 });
    }

    const session = await getSession();
    session.userId = user.id;
    session.username = user.username;
    session.isLoggedIn = true;
    await session.save();

    return Response.json({ success: true, username: user.username });
  } catch (err) {
    console.error("[auth/login]", err);
    return Response.json({ error: "خطای سرور" }, { status: 500 });
  }
}

export async function DELETE() {
  const session = await getSession();
  session.destroy();
  return Response.json({ success: true });
}
