"use client";
import React from "react";
import Link from "next/link";

interface CardProps {
  showCreateDeleteButton: boolean;
  showSearchDeleteButton: boolean;
  showAddButton: boolean;
  showUpdateButton: boolean;
  showTittle: boolean;
  showReviewButton: boolean;
  title: string;
  id: string;
  emirNo: string;
  onDelete?: (id: string) => void; // Add the onDelete callback
  isAdmin: boolean;
}

const Card: React.FC<CardProps> = ({
  showCreateDeleteButton,
  showSearchDeleteButton,
  showAddButton,
  showUpdateButton,
  showReviewButton,
  showTittle,
  title,
  id,
  emirNo,
  onDelete, // Destructure the onDelete callback
  isAdmin,
}) => {
  return (
    <div>
      <div className="card bg-neutral w-80 shadow-xl">
        <div className="card-body">
          {showTittle ? (
            <>
              <h2 className="card-title">{title}</h2>
            </>
          ) : (
            <>
              <h2 className="card-title">{title}</h2>
              <p>{emirNo}</p>
            </>
          )}

          <div className="card-actions flex flex-wrap justify-end">
            {showReviewButton && (
              <Link href={`/review?id=${id}`}>
                <button className="btn btn-info">İncele</button>
              </Link>
            )}
            {showUpdateButton && isAdmin && (
              <Link href={`/update?id=${id}`}>
                <button className="btn btn-warning">Düzenle</button>
              </Link>
            )}
            {showAddButton && (
              <Link href={`/custom?id=${id}`}>
                <button className="btn btn-success">Oluştur</button>
              </Link>
            )}
            {showCreateDeleteButton && onDelete && isAdmin && (
              <button
                className="btn btn-error"
                onClick={() => onDelete(id)} // Call onDelete callback
              >
                Sil
              </button>
            )}
            {showSearchDeleteButton && onDelete && isAdmin && (
              <button
                className="btn btn-error"
                onClick={() => onDelete(id)} // Call onDelete callback
              >
                Sil
              </button>
            )}
          </div>
        </div>
      </div>
    </div>
  );
};

export default Card;
