import { prisma } from "@/lib/prisma";
import { getAdminUser } from "@/lib/auth";
import { NextResponse } from "next/server";

export async function GET() {
    const admin = await getAdminUser();
    if (!admin) return NextResponse.json({ success: false }, { status: 401 });

    //   const faqs = await prisma.faqs.findMany({
    //     orderBy: [{ sort_order: "asc" }, { created_at: "desc" }],
    //   });

    const faqs = await prisma.faqs.findMany({
        orderBy: {
            created_at: "desc",
        },
    });

    const serialized = faqs.map((f) => ({
        ...f,
        id: f.id.toString(),
    }));

    return NextResponse.json({ success: true, data: serialized });
}

export async function POST(req: Request) {
    const admin = await getAdminUser();
    if (!admin) return NextResponse.json({ success: false }, { status: 401 });

    try {
        const body = await req.json();

        if (!body.question?.trim())
            return NextResponse.json({ success: false, message: "Question is required" }, { status: 400 });
        if (!body.answer?.trim())
            return NextResponse.json({ success: false, message: "Answer is required" }, { status: 400 });

        const faq = await prisma.faqs.create({
            data: {
                question: body.question.trim(),
                answer: body.answer.trim(),
                sort_order: body.sort_order ? parseInt(body.sort_order) : 0,
                status: body.status ?? true,
            },
        });

        return NextResponse.json({ success: true, data: { ...faq, id: faq.id.toString() } });
    } catch (err) {
        console.error("Create FAQ error:", err);
        return NextResponse.json({ success: false, message: "Failed to create FAQ" }, { status: 500 });
    }
}