import React, { useState, useEffect } from 'react';
import { Head, Link } from '@inertiajs/react';
import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout';
import {
  Store,
  TrendingUp,
  Banknote,
  QrCode,
  Trash2,
  DollarSign,
  Clock,
  ShoppingCart
} from '@/Components/AnimatedIcons';

interface Props {
  branch: {
    id: number;
    code: string;
    name: string;
    address: string | null;
    phone: string | null;
    manager_name: string | null;
  } | null;
  stats: {
    today_sales: number;
    today_bills: number;
    cash_sales: number;
    upi_sales: number;
    card_sales: number;
    discounts: number;
    voided_bills: number;
    wastage_total: number;
    expenses_total: number;
    closing_status: string;
    cash_variance: number;
    pending_wastage_count: number;
  };
}

export default function Dashboard({ branch, stats }: Props) {
  const [accentColor, setAccentColor] = useState<string>(() => {
    if (typeof window !== 'undefined') {
      return localStorage.getItem('admin_accent_color') || 'pink';
    }
    return 'pink';
  });

  useEffect(() => {
    const handleAccentChange = (e: CustomEvent) => setAccentColor(e.detail || localStorage.getItem('admin_accent_color') || 'pink');
    window.addEventListener('theme_accent_changed', handleAccentChange as EventListener);
    return () => window.removeEventListener('theme_accent_changed', handleAccentChange as EventListener);
  }, []);

  const accentBg = accentColor === 'seagreen' ? 'bg-[#0CA996] hover:bg-[#098878]' : 'bg-[#FF0D8F] hover:bg-[#d90978]';
  const accentText = accentColor === 'seagreen' ? 'text-[#0CA996]' : 'text-[#FF0D8F]';
  const accentBgLight = accentColor === 'seagreen' ? 'bg-[#0CA996]/10' : 'bg-[#FF0D8F]/10';
  const hoverBorderClass = accentColor === 'seagreen' ? 'hover:border-[#0CA996]' : 'hover:border-[#FF0D8F]';
  const borderLightClass = accentColor === 'seagreen' ? 'border-[#0CA996]/30' : 'border-[#FF0D8F]/30';
  const groupHoverTextClass = accentColor === 'seagreen' ? 'group-hover:text-[#0CA996]' : 'group-hover:text-[#FF0D8F]';

  return (
    <AuthenticatedLayout>
      <Head title={`Branch Operations - ${branch?.name || 'Bakery'}`} />

      <div className="space-y-6">
        {/* Header */}
        <div className="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4">
          <div>
            <h1 className="text-2xl font-bold text-slate-900 dark:text-white flex items-center space-x-2.5">
              <Store className={`w-7 h-7 ${accentText}`} />
              <span>{branch?.name || 'Branch Operations'}</span>
            </h1>
            <p className="text-xs text-slate-500 dark:text-slate-400 font-medium mt-1">
              {branch?.address || 'Branch location & daily management console'} ({branch?.code || 'N/A'})
            </p>
          </div>
          
          <Link
            href={route('pos.index')}
            className={`px-5 py-2.5 ${accentBg} text-white font-extrabold text-xs rounded-xl shadow-sm flex items-center space-x-2 transition-transform hover:scale-105`}
          >
            <ShoppingCart className="w-4 h-4" />
            <span>Open POS Terminal</span>
          </Link>
        </div>

        {/* Operational Alerts Banner */}
        <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
          <div className="bg-white dark:bg-slate-900 rounded-2xl p-4 border border-slate-200 dark:border-slate-800 shadow-sm flex items-center justify-between">
            <div className="space-y-0.5">
              <span className="text-slate-500 dark:text-slate-400 text-[10px] font-extrabold uppercase ">Daily Closing Status</span>
              <span className="block font-black text-sm text-slate-900 dark:text-white">
                Status: <strong className={stats.closing_status === 'COMPLETED' ? 'text-emerald-500' : 'text-amber-500'}>{stats.closing_status}</strong>
              </span>
            </div>
            <Link
              href={route('daily-closing.index')}
              className={`px-3 py-1.5 ${accentBgLight} ${accentText} font-bold text-xs rounded-xl`}
            >
              Closing
            </Link>
          </div>

          <div className="bg-white dark:bg-slate-900 rounded-2xl p-4 border border-slate-200 dark:border-slate-800 shadow-sm flex items-center justify-between">
            <div className="space-y-0.5">
              <span className="text-slate-500 dark:text-slate-400 text-[10px] font-extrabold uppercase ">Pending Wastage Approvals</span>
              <span className={`block font-black text-sm ${stats.pending_wastage_count > 0 ? 'text-rose-500' : 'text-slate-900 dark:text-white'}`}>
                {stats.pending_wastage_count} entries awaiting review
              </span>
            </div>
            <Link
              href={route('wastage.index')}
              className={`px-3 py-1.5 ${accentBgLight} ${accentText} font-bold text-xs rounded-xl`}
            >
              Review
            </Link>
          </div>

          <div className="bg-white dark:bg-slate-900 rounded-2xl p-4 border border-slate-200 dark:border-slate-800 shadow-sm flex items-center justify-between">
            <div className="space-y-0.5">
              <span className="text-slate-500 dark:text-slate-400 text-[10px] font-extrabold uppercase ">Today Branch Expenses</span>
              <span className="block font-black text-sm text-slate-900 dark:text-white">₹{stats.expenses_total.toFixed(2)}</span>
            </div>
            <Link
              href={route('expenses.index')}
              className={`px-3 py-1.5 ${accentBgLight} ${accentText} font-bold text-xs rounded-xl`}
            >
              Expenses
            </Link>
          </div>
        </div>

        {/* Hero KPI Cards */}
        <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-5">
          <div className={`bg-white dark:bg-slate-900 rounded-3xl p-6 border ${borderLightClass} shadow-sm flex justify-between items-start`}>
            <div>
              <span className="text-slate-500 dark:text-slate-400 text-xs  font-extrabold uppercase block">Branch Revenue Today</span>
              <span className={`text-3xl font-black ${accentText} mt-2 block`}>₹{stats.today_sales.toFixed(2)}</span>
              <span className="text-[10px] text-slate-500 dark:text-slate-400 font-medium block mt-2">From {stats.today_bills} finalized POS bills</span>
            </div>
            <div className={`w-10 h-10 rounded-2xl ${accentBgLight} ${accentText} flex items-center justify-center`}>
               <TrendingUp className="w-5 h-5" />
            </div>
          </div>

          <div className="bg-white dark:bg-slate-900 rounded-3xl p-6 border border-slate-200 dark:border-slate-800 shadow-sm flex justify-between items-start">
            <div>
              <span className="text-slate-500 dark:text-slate-400 text-xs  font-extrabold uppercase block">Cash in Register</span>
              <span className="text-3xl font-black text-slate-900 dark:text-white mt-2 block">₹{stats.cash_sales.toFixed(2)}</span>
              <span className="text-[10px] text-slate-500 dark:text-slate-400 font-medium block mt-2">Physical drawer collection</span>
            </div>
            <div className="w-10 h-10 rounded-2xl bg-slate-100 dark:bg-slate-800 text-slate-500 dark:text-slate-400 flex items-center justify-center">
              <Banknote className="w-5 h-5" />
            </div>
          </div>

          <div className="bg-white dark:bg-slate-900 rounded-3xl p-6 border border-slate-200 dark:border-slate-800 shadow-sm flex justify-between items-start">
            <div>
              <span className="text-slate-500 dark:text-slate-400 text-xs  font-extrabold uppercase block">UPI QR Digital</span>
              <span className="text-3xl font-black text-slate-900 dark:text-white mt-2 block">₹{stats.upi_sales.toFixed(2)}</span>
              <span className="text-[10px] text-slate-500 dark:text-slate-400 font-medium block mt-2">Instant settlements</span>
            </div>
            <div className="w-10 h-10 rounded-2xl bg-slate-100 dark:bg-slate-800 text-slate-500 dark:text-slate-400 flex items-center justify-center">
              <QrCode className="w-5 h-5" />
            </div>
          </div>

          <div className="bg-white dark:bg-slate-900 rounded-3xl p-6 border border-slate-200 dark:border-slate-800 shadow-sm flex justify-between items-start">
            <div>
              <span className="text-slate-500 dark:text-slate-400 text-xs  font-extrabold uppercase block">Today Wastage</span>
              <span className="text-3xl font-black text-slate-900 dark:text-white mt-2 block">₹{stats.wastage_total.toFixed(2)}</span>
              <span className="text-[10px] text-slate-500 dark:text-slate-400 font-medium block mt-2">Approved spoilage loss</span>
            </div>
            <div className="w-10 h-10 rounded-2xl bg-slate-100 dark:bg-slate-800 text-slate-500 dark:text-slate-400 flex items-center justify-center">
              <Trash2 className="w-5 h-5" />
            </div>
          </div>
        </div>

        {/* Operational Action Cards */}
        <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
          <Link
            href={route('pos.index')}
            className={`bg-white dark:bg-slate-900 p-5 rounded-3xl border border-slate-200 dark:border-slate-800 shadow-sm ${hoverBorderClass} transition-all flex flex-col justify-between space-y-3 group`}
          >
            <div className={`w-10 h-10 rounded-2xl bg-slate-100 dark:bg-slate-800 text-slate-500 dark:text-slate-400 ${groupHoverTextClass} flex items-center justify-center font-bold transition-colors`}>
              <ShoppingCart className="w-5 h-5" />
            </div>
            <div>
              <h4 className="font-extrabold text-sm text-slate-900 dark:text-white">POS Billing Terminal</h4>
              <p className="text-xs text-slate-500 dark:text-slate-400">Create customer bills & accept cash/UPI/card.</p>
            </div>
          </Link>

          <Link
            href={route('wastage.index')}
            className={`bg-white dark:bg-slate-900 p-5 rounded-3xl border border-slate-200 dark:border-slate-800 shadow-sm ${hoverBorderClass} transition-all flex flex-col justify-between space-y-3 group`}
          >
            <div className={`w-10 h-10 rounded-2xl bg-slate-100 dark:bg-slate-800 text-slate-500 dark:text-slate-400 ${groupHoverTextClass} flex items-center justify-center font-bold transition-colors`}>
              <Trash2 className="w-5 h-5" />
            </div>
            <div>
              <h4 className="font-extrabold text-sm text-slate-900 dark:text-white">Wastage Register</h4>
              <p className="text-xs text-slate-500 dark:text-slate-400">Report damaged or expired bakery items.</p>
            </div>
          </Link>

          <Link
            href={route('expenses.index')}
            className={`bg-white dark:bg-slate-900 p-5 rounded-3xl border border-slate-200 dark:border-slate-800 shadow-sm ${hoverBorderClass} transition-all flex flex-col justify-between space-y-3 group`}
          >
            <div className={`w-10 h-10 rounded-2xl bg-slate-100 dark:bg-slate-800 text-slate-500 dark:text-slate-400 ${groupHoverTextClass} flex items-center justify-center font-bold transition-colors`}>
              <DollarSign className="w-5 h-5" />
            </div>
            <div>
              <h4 className="font-extrabold text-sm text-slate-900 dark:text-white">Branch Expenses</h4>
              <p className="text-xs text-slate-500 dark:text-slate-400">Log electricity, cleaning, packaging & petty cash.</p>
            </div>
          </Link>

          <Link
            href={route('daily-closing.index')}
            className={`bg-white dark:bg-slate-900 p-5 rounded-3xl border border-slate-200 dark:border-slate-800 shadow-sm ${hoverBorderClass} transition-all flex flex-col justify-between space-y-3 group`}
          >
            <div className={`w-10 h-10 rounded-2xl bg-slate-100 dark:bg-slate-800 text-slate-500 dark:text-slate-400 ${groupHoverTextClass} flex items-center justify-center font-bold transition-colors`}>
              <Clock className="w-5 h-5" />
            </div>
            <div>
              <h4 className="font-extrabold text-sm text-slate-900 dark:text-white">Daily Closing</h4>
              <p className="text-xs text-slate-500 dark:text-slate-400">Submit drawer cash count & manager audit.</p>
            </div>
          </Link>
        </div>
      </div>
    </AuthenticatedLayout>
  );
}
