import { Button } from "@/components/ui/button";

interface AdminButtonProps {
  user: any;
}

/**
 * 관리자 버튼 컴포넌트
 */
export function AdminButton({ user }: AdminButtonProps) {
  // 디버깅용 로그
  console.log("=== AdminButton 디버깅 ===");
  console.log("user:", user);
  console.log("user?.userType:", user?.userType);
  console.log("user?.isAdmin:", user?.isAdmin);
  console.log("user?.userId:", user?.userId);

  // 관리자 권한 확인 로직 (3단계 권한 체계)
  const isAdmin =
    user?.isAdmin ||
    user?.userType === "SUPER_ADMIN" ||
    user?.userType === "COMPANY_ADMIN" ||
    user?.userType === "ADMIN" ||
    user?.userType === "admin" ||
    user?.userId === "plm_admin";

  console.log("최종 관리자 권한 확인:", isAdmin);

  // 관리자 권한이 있는 사용자만 Admin 버튼 표시
  if (!user || !isAdmin) {
    console.log("관리자 권한 없음 - Admin 버튼 숨김");
    return null;
  }

  const handleAdminClick = () => {
    console.log("Admin 버튼 클릭 - 새 탭으로 어드민 페이지 열기");

    // 토큰 확인
    const token = localStorage.getItem("authToken");
    if (!token) {
      console.log("토큰이 없음 - 로그인 페이지로 이동");
      window.open(`${window.location.origin}/login`, "_blank");
      return;
    }

    console.log("토큰 존재 - 어드민 페이지 열기");
    // 새 탭으로 관리자 페이지 열기 (localStorage 공유 활용)
    const adminUrl = `${window.location.origin}/admin`;
    const newWindow = window.open(adminUrl, "_blank");

    // 새 창이 차단되었는지 확인
    if (!newWindow) {
      console.log("팝업이 차단됨 - 같은 창에서 열기");
      window.location.href = adminUrl;
    }
  };

  return (
    <Button variant="outline" size="sm" className="cursor-pointer" onClick={handleAdminClick}>
      Admin
    </Button>
  );
}
