import { prisma } from '@/lib/db/prisma';

export const faqRepository = {
  // FAQ list joins through to the question and its best answer so the
  // /faqs page can render in one query instead of N+1.
  listAll() {
    return prisma.faq.findMany({
      orderBy: { createdAt: 'desc' },
      include: {
        category: { select: { id: true, name: true, slug: true } },
        question: {
          include: {
            bestAnswer: {
              include: { user: { select: { id: true, name: true } } },
            },
          },
        },
      },
    });
  },

  upsertForQuestion(questionId: number, categoryId: number) {
    return prisma.faq.upsert({
      where: { questionId },
      update: { categoryId },
      create: { questionId, categoryId },
    });
  },

  removeForQuestion(questionId: number) {
    return prisma.faq.deleteMany({ where: { questionId } });
  },
};
