"use client";

import Link from "next/link";
import { Crown } from "lucide-react";

import { Button } from "@/components/ui/button";
import {
  Dialog,
  DialogContent,
  DialogDescription,
  DialogFooter,
  DialogHeader,
  DialogTitle,
} from "@/components/ui/dialog";

type Props = {
  open: boolean;
  onOpenChange: (v: boolean) => void;
  message?: string;
};

export function PlanLimitDialog({ open, onOpenChange, message }: Props) {
  return (
    <Dialog open={open} onOpenChange={onOpenChange}>
      <DialogContent>
        <DialogHeader>
          <DialogTitle className="flex items-center gap-2">
            <Crown className="size-5 text-amber-500" />
            Ücretsiz plan sınırına ulaştınız
          </DialogTitle>
          <DialogDescription>
            {message ?? "Yeni kayıt eklemek için Pro plana geçmeniz gerekiyor."}
          </DialogDescription>
        </DialogHeader>
        <div className="rounded-md border bg-muted/30 p-3 text-sm space-y-1">
          <div className="font-medium text-foreground">Pro plan ile gelen avantajlar</div>
          <ul className="text-muted-foreground space-y-0.5 list-disc list-inside">
            <li>Sınırsız müşteri, finans kaydı, yazılım</li>
            <li>Sınırsız ekip üyesi</li>
            <li>Audit log + öncelikli destek</li>
          </ul>
        </div>
        <DialogFooter>
          <Button variant="outline" onClick={() => onOpenChange(false)}>
            Kapat
          </Button>
          <Button asChild>
            <Link href="/settings/billing">
              <Crown className="size-4" />
              Pro'ya geç
            </Link>
          </Button>
        </DialogFooter>
      </DialogContent>
    </Dialog>
  );
}
