import { User } from "@prisma/client" import { PricingCard } from "@/components/auth/pricing-card" import { Button } from "@/components/ui/button" import { Card } from "@/components/ui/card" import config from "@/lib/config" import { PLANS } from "@/lib/stripe" import { formatBytes, formatNumber } from "@/lib/utils" import { formatDate } from "date-fns" import { BrainCog, CalendarSync, HardDrive } from "lucide-react" import Link from "next/link" import { Badge } from "../ui/badge" export function SubscriptionPlan({ user }: { user: User }) { const plan = PLANS[user.membershipPlan as keyof typeof PLANS] || PLANS.unlimited return (
Current Plan
Usage:
Storage: {formatBytes(user.storageUsed)} /{" "} {user.storageLimit > 0 ? formatBytes(user.storageLimit) : "Unlimited"}
AI Scans: {formatNumber(plan.limits.ai - user.aiBalance)} /{" "} {plan.limits.ai > 0 ? formatNumber(plan.limits.ai) : "Unlimited"}
Expiration Date:{" "} {user.membershipExpiresAt ? formatDate(user.membershipExpiresAt, "yyyy-MM-dd") : "Never"}
{user.stripeCustomerId && ( )} {!user.stripeCustomerId && user.membershipExpiresAt && ( )} Contact Us
) }