import Link from "next/link";
import { redirect } from "next/navigation";
import { PauseCircle, ShieldOff } from "lucide-react";
import { requireParticipantContext } from "@/lib/auth/require-participant";
import { getDomesticFeed } from "@/lib/queries/participant-queries";
import { PageHeader } from "@/components/shared/PageHeader";
import { EmptyState } from "@/components/shared/EmptyState";
import { Card } from "@/components/ui/Card";
import { DomesticFeed } from "@/components/features/participant/DomesticFeed";
import { FEATURES } from "@/config/features";

export const dynamic = "force-dynamic";

export default async function DomesticFeedPage() {
  if (!FEATURES.domesticFeed) redirect("/participant");

  const { profile } = await requireParticipantContext();
  const paused = profile.status === "paused";
  const feed = paused ? null : await getDomesticFeed(profile.id);

  return (
    <>
      <PageHeader
        title="Nonstop Questions"
        subtitle={
          feed
            ? `${feed.completedCount} answered · your next questions adapt to your answers`
            : "Short questions that adapt to your answers"
        }
      />
      <div className="flex-1 p-4 sm:p-[26px]">
        {paused ? (
          <Card>
            <EmptyState
              icon={<PauseCircle className="h-8 w-8 text-warning" />}
              title="Participation is paused"
              description="Resume participation to keep answering."
              action={
                <Link
                  href="/participant/profile"
                  className="text-sm font-semibold text-primary hover:underline"
                >
                  Go to Profile &amp; Privacy →
                </Link>
              }
            />
          </Card>
        ) : !feed!.consentGranted ? (
          <Card>
            <EmptyState
              icon={<ShieldOff className="h-8 w-8 text-muted" />}
              title="Nonstop answers are turned off"
              description="Turn on the “Nonstop survey answers” permission to start receiving questions."
              action={
                <Link
                  href="/participant/profile#permissions"
                  className="text-sm font-semibold text-primary hover:underline"
                >
                  Manage permissions →
                </Link>
              }
            />
          </Card>
        ) : (
          <DomesticFeed items={feed!.items} completedCount={feed!.completedCount} />
        )}
      </div>
    </>
  );
}
