import { KycVerificationPanel } from "@/components/kyc-verification-panel";
import { prisma } from "@/server/db";
import { requirePageUser } from "@/server/security/page-auth";

export const dynamic = "force-dynamic";

export default async function KycPage() {
  const { user } = await requirePageUser();
  const cases = await prisma.kycCase.findMany({
    where: { userId: user.id },
    include: {
      documents: { orderBy: { uploadedAt: "desc" } },
      decisions: { orderBy: { createdAt: "desc" } }
    },
    orderBy: { openedAt: "desc" },
    take: 5
  });

  return (
    <KycVerificationPanel
      initialCases={cases.map((kycCase) => ({
        id: kycCase.id,
        status: kycCase.status,
        openedAt: kycCase.openedAt.toISOString(),
        decidedAt: kycCase.decidedAt?.toISOString() ?? null,
        expiresAt: kycCase.expiresAt?.toISOString() ?? null,
        documents: kycCase.documents.map((document) => ({
          id: document.id,
          type: document.type,
          status: document.status,
          uploadedAt: document.uploadedAt.toISOString()
        })),
        decisions: kycCase.decisions.map((decision) => ({
          id: decision.id,
          status: decision.status,
          reason: decision.reason,
          createdAt: decision.createdAt.toISOString()
        }))
      }))}
    />
  );
}
