import Image from "next/image";
import logoPrincipal from "@/assets/logo/pubago-logo-principal.png";
import logoNoir from "@/assets/logo/pubago-logo-noir.png";
import logoBlanc from "@/assets/logo/pubago-logo-blanc.png";
import iconePrincipal from "@/assets/logo/pubago-icone-principal.png";
import iconeNoir from "@/assets/logo/pubago-icone-noir.png";
import iconeBlanc from "@/assets/logo/pubago-icone-blanc.png";

export type LogoVariant = "principal" | "noir" | "blanc";

// Images importées statiquement : Next.js lit les dimensions réelles du
// fichier au build (source.width / source.height), le ratio est donc
// toujours juste, même si le fichier source change de forme (recadrage...).
const SOURCES: Record<LogoVariant, { full: typeof logoPrincipal; icon: typeof iconePrincipal }> = {
  principal: { full: logoPrincipal, icon: iconePrincipal },
  noir: { full: logoNoir, icon: iconeNoir },
  blanc: { full: logoBlanc, icon: iconeBlanc },
};

interface LogoProps {
  variant?: LogoVariant;
  icon?: boolean;
  /** Hauteur cible en px. La largeur est calculée à partir du ratio réel du fichier. */
  height?: number;
  className?: string;
}

export default function Logo({
  variant = "principal",
  icon = false,
  height = 40,
  className,
}: LogoProps) {
  const source = icon ? SOURCES[variant].icon : SOURCES[variant].full;
  const width = Math.round((height * source.width) / source.height);

  return (
    <Image
      src={source}
      alt="Pubago sacki."
      width={width}
      height={height}
      className={className}
      priority
    />
  );
}
