import { notFound } from "next/navigation";
import Link from "next/link";
import { prisma } from "@/lib/prisma";
import { getMaritalStatusLabel } from "@/lib/readings/marital-status";
import { Card, CardContent } from "@/components/ui/card";
import { ManualAnswerForm } from "./manual-answer-form";

export default async function AdminReadingDetailPage({
  params,
}: {
  params: Promise<{ id: string }>;
}) {
  const { id } = await params;
  const reading = await prisma.reading.findUnique({
    where: { id },
    include: {
      user: { select: { phone: true } },
      payment: true,
      readingCards: { include: { card: true }, orderBy: { position: "asc" } },
    },
  });
  if (!reading) notFound();

  const userMaritalLabel = getMaritalStatusLabel(reading.userMaritalStatus);
  const partnerMaritalLabel = getMaritalStatusLabel(reading.partnerMaritalStatus);

  return (
    <div>
      <h1 className="text-2xl font-bold mb-6">فال {reading.spreadType}</h1>
      <Card className="mb-6">
        <CardContent className="p-4 space-y-2">
          <p>کاربر: {reading.user.phone}</p>
          {reading.userName && <p>نام کاربر: {reading.userName}</p>}
          {reading.customerPhone && <p>موبایل مشتری: {reading.customerPhone}</p>}
          {reading.intention && <p>نیت: {reading.intention}</p>}
          {reading.partnerName && <p>نام شریک: {reading.partnerName}</p>}
          {userMaritalLabel && <p>وضعیت تاهل کاربر: {userMaritalLabel}</p>}
          {partnerMaritalLabel && <p>وضعیت تاهل پارتنر: {partnerMaritalLabel}</p>}
          <p>وضعیت: {reading.status}</p>
          <p>تاریخ: {new Date(reading.createdAt).toLocaleDateString("fa-IR")}</p>
          {reading.payment && (
            <p>
              پرداخت: {reading.payment.status} — مبلغ:{" "}
              {Number(reading.payment.amount).toLocaleString("fa-IR")}
            </p>
          )}
        </CardContent>
      </Card>
      <h2 className="text-lg font-semibold mb-2">کارت‌ها</h2>
      <ul className="flex flex-wrap gap-2 mb-8">
        {reading.readingCards.map((rc, i) => (
          <li key={rc.id}>
            <span className="text-sm">
              {i + 1}. {rc.card.nameFa}
            </span>
          </li>
        ))}
      </ul>
      {reading.followUpQuestion && (
        <Card className="mb-6">
          <CardContent className="p-4 space-y-3">
            <p className="font-medium">سوال پیگیری:</p>
            <p className="text-sm whitespace-pre-wrap">{reading.followUpQuestion}</p>
            {Array.isArray(reading.followUpCardIds) && reading.followUpCardIds.length > 0 && (
              <div>
                <p className="font-medium mb-1">کارت‌های پیگیری:</p>
                <p className="text-sm">
                  {(reading.followUpCardIds as string[]).length} کارت انتخاب شده
                </p>
              </div>
            )}
          </CardContent>
        </Card>
      )}
      <ManualAnswerForm
        readingId={reading.id}
        initialTitle={reading.title ?? ""}
        initialSections={reading.sections ?? ""}
        initialAdvice={reading.advice ?? ""}
        initialSummary={reading.summary ?? ""}
        followUpQuestion={reading.followUpQuestion}
        initialFollowUpSections={reading.followUpSections ?? ""}
        initialFollowUpAdvice={reading.followUpAdvice ?? ""}
        initialFollowUpSummary={reading.followUpSummary ?? ""}
      />
      <Link href="/admin/readings" className="text-sm underline">
        بازگشت به لیست
      </Link>
    </div>
  );
}
