import ApexChart from "@/app/_components/ApexChart";
import FooterForm from "@/app/_components/FooterForm";
import ImageWithFallback from "@/app/_components/ImageWithFallback";
import { cmsService } from "@/hooks/useCmsQueries";
import { CmsResponse } from "@/types/TCms";
import { Metadata } from "next";
import Image from "next/image";
import Link from "next/link";

export const metadata: Metadata = {
  title: "Opp lens - Marketing",
  description:
    "Automated tender management platform for SMEs. Find tailored tenders, automate document handling, and get real-time alerts. Win more opportunities with less effort.",
  keywords:
    "tender management, AI tender search, SME tenders, public procurement, automated bidding, tender alerts",
  authors: [{ name: "PBL Partners AB" }],
  openGraph: {
    title: "Opp lens - AI-Powered Tender Management",
    description: "Win more tenders automatically with our AI-powered platform",
    type: "website",
    locale: "en_US",
    siteName: "Opp lens",
  },
  icons: {
    icon: "/fav-icon.svg",
  },
};

interface IProps {
  params: { id: string };
}

export default async function Home({ params }: IProps) {
  const { id } = params;

  let cmsData: CmsResponse | null = null;
  try {
    cmsData = await cmsService.getCms(id);
  } catch (error) {
    console.error("Error fetching CMS data:", error);
  }

  const centerFrames = [
    {
      src: "/magnifier.svg",
      title: "1. Discover with AI",
      alt: "Magnifier",
      description:
        "Our intelligent platform scours thousands of sources to find the perfect, most relevant tender opportunities for your specific business and expertise",
    },
    {
      src: "/clipboard.svg",
      title: "2. Prepare with Experts",
      alt: "Clipboard",
      description:
        "Gain access to expert support and powerful tools to craft compelling, competitive, and high-quality bids that stand out from the competition.",
    },
    {
      src: "/thumbs-up.svg",
      title: "3. Win with a Partner",
      alt: "thumbs-up",
      description:
        "We operate on a partnership model. We only succeed when you win. This aligns our goals and makes us a true partner in your growth.",
    },
  ];

  return (
    <>
      <header className="flex justify-center pt-8 lg:justify-between items-center pb-4 container px-4 py-4 m-auto">
        <Link
          href="/"
          aria-label="Opp lens home">
          <Image
            src="/main-logo.svg"
            alt="Opp lens logo"
            width={180}
            height={30}
            priority
          />
        </Link>
      </header>
      <main className="container px-4 py-4 m-auto flex-grow">
        <section className="block lg:flex justify-around items-center">
          <div className="flex gap-4 w-full lg:w-1/2 font-bold text-4xl text-center flex-col bg-gray-400/10 p-10 rounded-[40px] h-fit mb-16 backdrop-blur-2xl">
            <div className="flex flex-col gap-8">
              <h2>
                <span>$</span>
                <span>{cmsData?.data.chart.missedAmount ?? 1672}</span>
              </h2>
              <h2 className="capitalize text-2xl font-bold lg:text-3xl">
                total tender amount you missed today
              </h2>
            </div>
            <ApexChart cmsData={cmsData?.data} />
          </div>
          <div className="m-auto w-xs lg:m-0 lg:w-auto -z-20 relative flex justify-center h-[650px] lg:h-[750px]">
            <Image
              src={"/dynamic-island.svg"}
              alt="dynamic island"
              width={75}
              height={22}
              className="absolute top-4 left-1/2 -translate-x-1/2"
            />
            <Image
              className="-z-10 border-8 border-black rounded-4xl overflow-hidden h-full w-full"
              src="/mobile.gif"
              width={300}
              height={920}
              loading="lazy"
              alt="phone"
            />
          </div>
        </section>
        <section className="text-left flex flex-col gap-6 bg-gradient-to-b from-[#011132] to-[#012B80] text-white rounded-[56px] relative p-6 lg:p-14 -mt-16 z-20 lg:ml-28 ">
          <hgroup>
            <h1 className="capitalize font-extrabold text-4xl mb-6 md:text-5xl">
              {cmsData?.data.hero.Title}
            </h1>
            <p className="text-[16px] text-[#dadada]">
              {cmsData?.data.hero.Description}
            </p>
          </hgroup>
          <div className="flex justify-end">
            <Link
              className="w-full lg:w-fit capitalize bg-(--primary) rounded-4xl py-4 px-6"
              href={cmsData?.data.hero.ButtonLink ?? "#"}>
              {cmsData?.data.hero.ButtonText}
            </Link>
          </div>
        </section>
        <article className="mt-40">
          <hgroup>
            <h4 className="capitalize font-bold text-2xl lg:text-4xl">
              your in-house tender department, powered by
              <span className="uppercase">ai</span>
            </h4>
            <small className="text-gray-600 mt-3">
              Opplens is the end-to-end solution that gives you the power to
              compete and win.
            </small>
          </hgroup>
        </article>
        <section className="flex flex-col gap-4 lg:flex-row">
          {centerFrames.map((frame, index) => (
            <article
              key={frame.description}
              className="bg-[#F7FAFF] border border-(--primary)/30 rounded-3xl my-4 py-10 px-6 flex flex-col gap-5  transition duration-300 transform scale-90 hover:bg-[#0164FF30] hover:scale-110">
              <Image
                src={frame.src}
                alt={frame.alt}
                width={36}
                height={36}
              />
              <h3 className="text-2xl font-bold">{frame.title}</h3>
              <p className="text-gray-600">{frame.description}</p>
            </article>
          ))}
        </section>
        <section className="mt-36 bg-[#F7FAFF] px-4 py-6 rounded-4xl flex flex-col gap-9 lg:p-16">
          <div className="flex flex-col gap-4">
            <h2 className=" font-bold text-4xl">
              Tired of Complex Tenders & Lost Opportunities?
            </h2>
            <p className="font-normal text-sm">
              The procurement market is tough for SMEs. We get it. You're facing
              an uphill battle.
            </p>
          </div>
          <ul className="flex flex-col gap-4 lg:flex-row lg:justify-between">
            <li className="flex flex-col gap-4 lg:w-80">
              <div className="p-4">
                <Image
                  src={"/clock.svg"}
                  alt="clock icon"
                  width={36}
                  height={36}
                />
              </div>
              <h2 className="font-bold">Resource Drain</h2>
              <p>
                Lacking the time, dedicated staff, and expertise to constantly
                monitor the market and prepare high-quality bids.
              </p>
            </li>
            <li className="flex flex-col gap-4 lg:w-80">
              <div className="p-4">
                <ImageWithFallback
                  src={"/clipboard.svg"}
                  alt="clipboard icon"
                  width={36}
                  height={36}
                />
              </div>
              <h2 className="font-bold">Overwhelming Complexity</h2>
              <p>
                Navigating complex requirements and processes designed for large
                corporations with dedicated tender departments.
              </p>
            </li>
            <li className="flex flex-col gap-4 lg:w-80">
              <div className="p-4">
                <ImageWithFallback
                  src={"/arrow-up.svg"}
                  alt="arrow-up icon"
                  width={36}
                  height={36}
                />
              </div>
              <h2 className="font-bold">Low Win Rates</h2>
              <p>
                Did you know 68% of SMEs in Sweden rarely or never win public
                tenders? It's time to change that.
              </p>
            </li>
          </ul>
        </section>
        <section className="flex flex-col mt-36 gap-10 px-2 lg:w-3/4 m-auto">
          <div>
            <h2 className="font-bold text-2xl lg:text-4xl">
              {cmsData?.data.advantages.Title}
            </h2>
          </div>
          <section className="flex flex-col gap-10 lg:flex-row">
            {cmsData?.data.advantages.Cards.map((card) => (
              <div
                className="flex flex-col gap-7 bg-[#FFF7EB] p-10 rounded-3xl lg:pb-20"
                key={card.Title}>
                <ImageWithFallback
                  src={card.Icon ?? "/people.svg"}
                  width={48}
                  height={48}
                  alt="people icon"
                  unoptimized
                />
                <div className="flex flex-col gap-4">
                  <h2 className="font-bold text-xl">{card.Title}</h2>
                  <p>{card.Description}</p>
                </div>
              </div>
            ))}
          </section>
        </section>
      </main>
      <footer className="relative h-full bg-[url('/footer-bg.svg')] bg-cover bg-no-repeat mt-96">
        <div
          className="absolute w-full -top-[355px] lg:-top-72 h-[600px] z-[-10] bg-[url('/bottom-bg.svg')] bg-contain bg-no-repeat bg-right"
          aria-hidden="true"
        />

        <FooterForm />

        <div className="relative z-10 container px-4 py-4 m-auto flex flex-col justify-center items-center mt-80 ">
          <div className="flex justify-between flex-col lg:flex-row gap-14 w-full lg:w-1/2">
            <div className="flex flex-col gap-10">
              <Image
                src={"/footer-logo.svg"}
                alt="Opp lens logo"
                width={180}
                height={30}
                priority
              />
              <div>
                <p className="text-white my-2">
                  {cmsData?.data.footer.Tagline}
                </p>
                <small className="text-white my-2">
                  {cmsData?.data.footer.Copyright}
                </small>
              </div>
            </div>
            <address className="not-italic">
              <ul>
                <li className="flex gap-3 my-3 text-white">
                  <Image
                    src={"/Phone.svg"}
                    width={24}
                    height={24}
                    alt=""
                    aria-hidden="true"
                  />
                  <a href={`tel:${cmsData?.data.footer.Phone}`}>
                    {cmsData?.data.footer.Phone}
                  </a>
                </li>
                <li className="flex gap-3 my-3 text-white">
                  <Image
                    src={"/Message.svg"}
                    width={24}
                    height={24}
                    alt=""
                    aria-hidden="true"
                  />
                  <a href={`mailto:${cmsData?.data.footer.Email}`}>
                    {cmsData?.data.footer.Email}
                  </a>
                </li>
                <li className="flex gap-3 my-3 text-white">
                  <Image
                    src={"/Location.svg"}
                    width={24}
                    height={24}
                    alt=""
                    aria-hidden="true"
                  />
                  <p>{cmsData?.data.footer.Location}</p>
                </li>
              </ul>
            </address>
          </div>
        </div>
      </footer>
    </>
  );
}
function ContactInfo({
  icon,
  contact,
  href,
  ariaLabel,
  contactIconSrc,
}: {
  icon: string;
  contact: string;
  href?: string;
  ariaLabel: string;
  contactIconSrc?: string;
}) {
  return (
    <li className="flex gap-3 my-3 text-white">
      <Image
        src={icon}
        width={24}
        height={24}
        alt=""
        aria-hidden="true"
      />
      {href ? (
        <a
          href={href}
          className="cursor-pointer min-w-fit"
          aria-label={ariaLabel}>
          {contact}
        </a>
      ) : (
        <p className="flex gap-3">
          {!!contactIconSrc && (
            <Image
              src={contactIconSrc}
              width={20}
              height={20}
              alt="flag"
            />
          )}
          {contact}
        </p>
      )}
    </li>
  );
}
