import { redirect } from "next/navigation";
import { auth } from "@/lib/auth";
import prisma from "@/lib/prisma";
import Link from "next/link";

export default async function SubscribedCreatorsPage() {
  const session = await auth();
  if (!session?.user) redirect("/login");

  const subscriptions = await prisma.subscription.findMany({
    where: { user_id: Number(session.user.id) },
    include: {
      escort: {
        select: { id: true, username: true, id_aw: true },
      },
    },
    orderBy: { created_at: "desc" },
  });

  return (
    <div className="max-w-3xl mx-auto">
      <h1 className="text-3xl font-bold text-text mb-6">Subscribed Creators</h1>

      {subscriptions.length === 0 ? (
        <div className="bg-surface rounded-lg p-12 text-center">
          <p className="text-text-muted mb-4">You are not subscribed to any creators yet.</p>
          <Link href="/escorts" className="text-primary hover:text-primary-dark font-semibold">
            Discover creators
          </Link>
        </div>
      ) : (
        <div className="space-y-3">
          {subscriptions.map((sub) => {
            const expired = sub.end_at ? sub.end_at.getTime() < Date.now() : false;
            return (
              <div key={sub.id} className="bg-surface rounded-lg p-4 flex items-center justify-between">
                <div>
                  <div className="flex items-center gap-2">
                    <Link
                      href={`/view/${sub.escort?.id_aw}`}
                      className="font-semibold text-text hover:text-primary transition-colors"
                    >
                      {sub.escort?.username || "Unknown"}
                    </Link>
                    {expired && (
                      <span className="text-[10px] font-bold uppercase bg-zinc-600/30 text-zinc-300 px-1.5 py-0.5 rounded">
                        Expired
                      </span>
                    )}
                  </div>
                  <p className="text-text-muted text-sm">
                    Since {sub.created_at?.toLocaleDateString(undefined)}
                    {sub.end_at && (
                      <>
                        {" · "}
                        {expired ? "Expired" : "Expires"}{" "}
                        {sub.end_at.toLocaleDateString(undefined)}
                      </>
                    )}
                  </p>
                </div>
                <Link
                  href={`/view/${sub.escort?.id_aw}`}
                  className="text-primary hover:text-primary-dark text-sm"
                >
                  View Profile
                </Link>
              </div>
            );
          })}
        </div>
      )}
    </div>
  );
}
