"use client";

import React, { useState } from "react";
import Link from "next/link";
import { useCart } from "@/context/CartContext";
import { LogoMark } from "@/components/Logo";
import {
  Mail,
  Phone,
  MapPin,
  Clock,
  ShieldCheck,
  Truck,
  Send,
  CheckCircle2,
  FileText,
  PackageCheck,
  Heart,
} from "lucide-react";

export const Footer: React.FC = () => {
  const { setIsQuoteModalOpen, setIsTrackerOpen } = useCart();

  const [newsletterEmail, setNewsletterEmail] = useState("");
  const [newsletterSuccess, setNewsletterSuccess] = useState(false);
  const [isSubmitting, setIsSubmitting] = useState(false);

  const handleNewsletterSubmit = async (e: React.FormEvent) => {
    e.preventDefault();
    if (!newsletterEmail) return;

    setIsSubmitting(true);
    try {
      const res = await fetch("/api/newsletter", {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ email: newsletterEmail }),
      });
      const data = await res.json();
      if (data.success) {
        setNewsletterSuccess(true);
        setNewsletterEmail("");
      }
    } catch (e) {
      console.error(e);
    } finally {
      setIsSubmitting(false);
    }
  };

  return (
    <footer className="bg-slate-950 text-slate-300">
      {/* Newsletter Bar */}
      <div className="bg-gradient-to-r from-blue-950 via-slate-900 to-indigo-950 border-b border-slate-800 py-10 px-4">
        <div className="max-w-7xl mx-auto grid md:grid-cols-12 gap-6 items-center">
          <div className="md:col-span-7 space-y-1">
            <span className="text-amber-400 font-extrabold text-xs uppercase tracking-wider">
              Join The Diverse Stationery Club
            </span>
            <h3 className="text-xl sm:text-2xl font-black text-white">
              Get R100 Off Your First Order + Weekly SA Stationery Deals
            </h3>
            <p className="text-xs text-slate-300">
              Subscribe to receive exclusive back-to-school discount vouchers, new product arrivals & corporate bulk specials.
            </p>
          </div>

          <div className="md:col-span-5">
            {!newsletterSuccess ? (
              <form onSubmit={handleNewsletterSubmit} className="flex gap-2">
                <input
                  type="email"
                  placeholder="Enter your email address..."
                  value={newsletterEmail}
                  onChange={(e) => setNewsletterEmail(e.target.value)}
                  required
                  className="flex-1 px-4 py-3 bg-slate-900/90 border border-slate-700 rounded-xl text-xs text-white placeholder-slate-400 focus:outline-none focus:border-amber-400"
                />
                <button
                  type="submit"
                  disabled={isSubmitting}
                  className="px-5 py-3 bg-amber-500 hover:bg-amber-600 text-slate-950 font-extrabold text-xs rounded-xl shadow-md transition-colors flex items-center gap-1.5 shrink-0 cursor-pointer"
                >
                  <Send className="w-3.5 h-3.5" />
                  <span>{isSubmitting ? "Submitting..." : "CLAIM R100"}</span>
                </button>
              </form>
            ) : (
              <div className="p-3 bg-emerald-950/80 border border-emerald-700 text-emerald-300 rounded-xl text-xs font-bold flex items-center gap-2">
                <CheckCircle2 className="w-4 h-4 text-emerald-400" />
                <span>Voucher Code <strong>DIVERSE10</strong> is active for 10% Off your cart!</span>
              </div>
            )}
          </div>
        </div>
      </div>

      {/* Main Footer Content */}
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
        <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 gap-8">
          {/* Brand Info */}
          <div className="lg:col-span-2 space-y-4">
            <div className="flex items-center gap-2.5">
              <div className="bg-white rounded-xl p-1.5 shadow-md">
                <LogoMark className="w-9 h-9" />
              </div>
              <div className="flex flex-col leading-none">
                <span className="font-black text-lg tracking-tight" style={{ color: "#14B8A6" }}>
                  DIVERSE
                </span>
                <span className="font-black tracking-[0.16em] text-[10px]" style={{ color: "#C9B79C" }}>
                  STATIONERY
                </span>
              </div>
            </div>

            <p className="text-xs text-slate-400 leading-relaxed max-w-sm">
              Diverse Stationery Co. is South Africa&apos;s premier e-commerce supplier for school books, calculators, writing pens, filing folders, and office consumables. Express courier delivery across Gauteng, Western Cape, KZN and all 9 provinces.
            </p>

            <div className="space-y-2 text-xs text-slate-300">
              <div className="flex items-center gap-2">
                <MapPin className="w-4 h-4 text-amber-500 shrink-0" />
                <span>Johannesburg & Cape Town Distribution Hubs, South Africa</span>
              </div>
              <div className="flex items-center gap-2">
                <Phone className="w-4 h-4 text-amber-500 shrink-0" />
                <span>+27 (0) 11 892 4100 / +27 (0) 82 555 1234</span>
              </div>
              <div className="flex items-center gap-2">
                <Mail className="w-4 h-4 text-amber-500 shrink-0" />
                <span>orders@diversestationery.co.za</span>
              </div>
              <div className="flex items-center gap-2">
                <Clock className="w-4 h-4 text-amber-500 shrink-0" />
                <span>Mon - Fri: 08:00 - 17:00 | Sat: 08:30 - 13:00</span>
              </div>
            </div>
          </div>

          {/* Customer Service Links */}
          <div className="space-y-3">
            <h4 className="font-extrabold text-xs text-white uppercase tracking-wider text-amber-400">
              Customer Desk
            </h4>
            <ul className="space-y-2 text-xs font-medium">
              <li>
                <Link href="/catalogue" className="hover:text-amber-400 transition-colors">
                  Product Catalogue 2026
                </Link>
              </li>
              <li>
                <Link href="/price-list" className="hover:text-amber-400 transition-colors">
                  Download Price List
                </Link>
              </li>
              <li>
                <Link href="/wordpress-theme" className="hover:text-amber-400 transition-colors">
                  Download WordPress Theme
                </Link>
              </li>
              <li>
                <button
                  onClick={() => setIsTrackerOpen(true)}
                  className="hover:text-amber-400 transition-colors cursor-pointer text-left"
                >
                  Track Courier Order
                </button>
              </li>
              <li>
                <button
                  onClick={() => setIsQuoteModalOpen(true)}
                  className="hover:text-amber-400 transition-colors cursor-pointer text-left"
                >
                  School & Corporate Bulk Quotes
                </button>
              </li>
              <li>
                <a href="#delivery-calculator" className="hover:text-amber-400 transition-colors">
                  Delivery Lead Times & Rates
                </a>
              </li>
              <li>
                <a href="https://wa.me/27712345678" target="_blank" rel="noopener noreferrer" className="hover:text-emerald-400 text-emerald-400 transition-colors font-bold">
                  WhatsApp Support Chat
                </a>
              </li>
            </ul>
          </div>

          {/* Shop Categories */}
          <div className="space-y-3">
            <h4 className="font-extrabold text-xs text-white uppercase tracking-wider text-amber-400">
              Shop Categories
            </h4>
            <ul className="space-y-2 text-xs font-medium text-slate-400">
              <li>School Requirement Lists</li>
              <li>Typek Paper & Printing Pads</li>
              <li>Calculators & Geometry Sets</li>
              <li>BIC & Pilot Writing Pens</li>
              <li>Lever Arch Files & Storage</li>
              <li>Art, Paint & Craft Supplies</li>
            </ul>
          </div>

          {/* South African Payments & Security */}
          <div className="space-y-3">
            <h4 className="font-extrabold text-xs text-white uppercase tracking-wider text-amber-400">
              Accepted SA Payments
            </h4>
            <p className="text-[11px] text-slate-400">
              100% Secure Checkout via Ozow Instant EFT, Visa, Mastercard & PayFast 3D-Secure.
            </p>

            <div className="flex flex-wrap gap-2 pt-1">
              <span className="bg-slate-900 border border-slate-800 text-[10px] font-bold px-2.5 py-1 rounded-lg text-slate-200">
                Ozow Instant EFT
              </span>
              <span className="bg-slate-900 border border-slate-800 text-[10px] font-bold px-2.5 py-1 rounded-lg text-slate-200">
                Visa / Mastercard
              </span>
              <span className="bg-slate-900 border border-slate-800 text-[10px] font-bold px-2.5 py-1 rounded-lg text-slate-200">
                PayFast
              </span>
            </div>

            <div className="pt-2 text-[11px] text-emerald-400 font-semibold flex items-center gap-1.5">
              <ShieldCheck className="w-4 h-4 text-emerald-400" />
              <span>256-Bit SSL Encrypted & POPIA Compliant</span>
            </div>
          </div>
        </div>

        {/* Copyright Footer */}
        <div className="mt-12 pt-6 border-t border-slate-900 flex flex-col sm:flex-row items-center justify-between text-[11px] text-slate-500 gap-3">
          <p>&copy; {new Date().getFullYear()} Diverse Stationery Co. (Pty) Ltd. All rights reserved.</p>
          <div className="flex items-center gap-3">
            <span>Redesigned for South Africa 🇿🇦</span>
            <span>&bull;</span>
            <span className="hover:text-slate-300">Privacy Policy</span>
            <span>&bull;</span>
            <span className="hover:text-slate-300">Terms of Service</span>
          </div>
        </div>
      </div>
    </footer>
  );
};
