import React, { useState, useEffect } from 'react';
import { Head } from '@inertiajs/react';
import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout';
import { Activity, Building2, TrendingUp, Trash2 } from '@/Components/AnimatedIcons';

interface BranchMatrixItem {
  branch_id: number;
  code: string;
  name: string;
  short_name: string;
  manager_name: string;
  sales: number;
  bills: number;
  cash: number;
  upi: number;
  card: number;
  wastage: number;
  expenses: number;
  variance: number;
  closing_status: string;
}

interface Props {
  matrix: BranchMatrixItem[];
  todayDate: string;
}

export default function BranchOperations({ matrix, todayDate }: Props) {
  const [accentColor, setAccentColor] = useState<string>(() => localStorage.getItem('admin_accent_color') || 'pink');

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

  const accentText = accentColor === 'seagreen' ? 'text-[#0CA996]' : 'text-[#FF0D8F]';

  const totalSalesAll = matrix.reduce((acc, b) => acc + b.sales, 0);
  const totalBillsAll = matrix.reduce((acc, b) => acc + b.bills, 0);
  const totalWastageAll = matrix.reduce((acc, b) => acc + b.wastage, 0);

  return (
    <AuthenticatedLayout>
      <Head title="Branch Operations Control Room - Cakes & Candles" />

      <div className="space-y-6">
        {/* Header */}
        <div className="flex flex-col md:flex-row md:items-center justify-between gap-4">
          <div>
            <h1 className="text-2xl font-bold text-slate-900 dark:text-white flex items-center space-x-2.5">
              <Activity className={`w-7 h-7 ${accentText}`} />
              <span>Central Branch Operations Control Room</span>
            </h1>
            <p className="text-xs text-slate-500 dark:text-slate-400 font-medium mt-1">
              Live operational comparison across retail bakery branches for {todayDate}
            </p>
          </div>

          <div className="flex items-center space-x-3">
            <span className="px-3 py-1 bg-slate-100 dark:bg-slate-800 text-slate-700 dark:text-slate-300 border border-slate-200 dark:border-slate-700 text-xs font-semibold rounded-full">
              Live Operations Feed
            </span>
          </div>
        </div>

        {/* Global Summary KPI Row */}
        <div className="grid grid-cols-1 sm:grid-cols-3 gap-5">
          <div className="bg-white dark:bg-slate-900 rounded-2xl p-6 shadow-sm border border-slate-200 dark:border-slate-800 flex items-center justify-between">
            <div>
              <span className="text-slate-400 dark:text-slate-500 text-[11px]  font-semibold uppercase tracking-wider">Total Chain Revenue</span>
              <span className="text-3xl font-bold text-slate-900 dark:text-white block mt-1">₹{totalSalesAll.toFixed(2)}</span>
              <span className="text-[11px] text-slate-500 dark:text-slate-400 font-medium">Across all active branches today</span>
            </div>
            <div className="w-12 h-12 rounded-xl bg-slate-100 dark:bg-slate-800 text-slate-700 dark:text-slate-200 flex items-center justify-center">
              <TrendingUp className="w-6 h-6" />
            </div>
          </div>

          <div className="bg-white dark:bg-slate-900 rounded-2xl p-6 border border-slate-200 dark:border-slate-800 shadow-sm flex items-center justify-between">
            <div>
              <span className="text-slate-400 dark:text-slate-500 text-[11px]  font-semibold uppercase tracking-wider">Total Orders Fulfilled</span>
              <span className="text-3xl font-bold text-slate-900 dark:text-white block mt-1">{totalBillsAll}</span>
              <span className="text-[11px] text-slate-500 dark:text-slate-400 font-medium">Fulfilled customer invoices</span>
            </div>
            <div className="w-12 h-12 rounded-xl bg-slate-100 dark:bg-slate-800 text-slate-700 dark:text-slate-200 flex items-center justify-center">
              <Building2 className="w-6 h-6" />
            </div>
          </div>

          <div className="bg-white dark:bg-slate-900 rounded-2xl p-6 border border-slate-200 dark:border-slate-800 shadow-sm flex items-center justify-between">
            <div>
              <span className="text-slate-400 dark:text-slate-500 text-[11px]  font-semibold uppercase tracking-wider">Chain Spoilage Loss</span>
              <span className="text-3xl font-bold text-slate-900 dark:text-white block mt-1">₹{totalWastageAll.toFixed(2)}</span>
              <span className="text-[11px] text-slate-500 dark:text-slate-400 font-medium">Reported wastage value</span>
            </div>
            <div className="w-12 h-12 rounded-xl bg-slate-100 dark:bg-slate-800 text-slate-700 dark:text-slate-200 flex items-center justify-center">
              <Trash2 className="w-6 h-6" />
            </div>
          </div>
        </div>

        {/* Operational Matrix Table */}
        <div className="bg-white dark:bg-slate-900 rounded-2xl border border-slate-200 dark:border-slate-800 shadow-sm overflow-hidden">
          <div className="flex items-center justify-between border-b border-slate-200 dark:border-slate-800 p-6 bg-white dark:bg-slate-900">
            <h3 className="font-bold text-base text-slate-900 dark:text-white">
              Branch Performance & Daily Closing Matrix
            </h3>
            <span className="text-xs  text-slate-400 dark:text-slate-500 font-semibold">{matrix.length} Branches Online</span>
          </div>

          <div className="overflow-x-auto">
            <table className="w-full text-left text-sm">
              <thead className="bg-slate-50 dark:bg-slate-950/50 border-b border-slate-200 dark:border-slate-800 text-[11px] uppercase text-slate-500 dark:text-slate-400 font-semibold tracking-wider">
                <tr>
                  <th className="px-5 py-4">Branch</th>
                  <th className="px-5 py-4">Manager</th>
                  <th className="px-5 py-4 text-right">Net Sales</th>
                  <th className="px-5 py-4 text-center">Bills</th>
                  <th className="px-5 py-4 text-right">Cash</th>
                  <th className="px-5 py-4 text-right">UPI</th>
                  <th className="px-5 py-4 text-right">Card</th>
                  <th className="px-5 py-4 text-right">Wastage</th>
                  <th className="px-5 py-4 text-right">Expenses</th>
                  <th className="px-5 py-4 text-right">Variance</th>
                  <th className="px-5 py-4 text-center">Status</th>
                </tr>
              </thead>
              <tbody className="divide-y divide-slate-200 dark:divide-slate-800/60 font-medium">
                {matrix.map((row) => (
                  <tr key={row.branch_id} className="hover:bg-slate-50/70 dark:hover:bg-slate-800/40 transition-colors">
                    <td className="px-5 py-4 whitespace-nowrap">
                      <div className="flex items-center space-x-2">
                        <span className="px-2 py-0.5 bg-slate-100 dark:bg-slate-800 text-slate-700 dark:text-slate-300  text-xs font-bold rounded border border-slate-200 dark:border-slate-700">
                          {row.code}
                        </span>
                        <span className="font-bold text-slate-900 dark:text-white">{row.name}</span>
                      </div>
                    </td>

                    <td className="px-5 py-4 whitespace-nowrap font-semibold text-slate-700 dark:text-slate-300 text-xs">{row.manager_name}</td>

                    <td className="px-5 py-4 whitespace-nowrap text-right font-bold text-slate-900 dark:text-white text-xs">
                      ₹{row.sales.toFixed(2)}
                    </td>

                    <td className="px-5 py-4 whitespace-nowrap text-center font-bold text-slate-700 dark:text-slate-300 text-xs">
                      {row.bills}
                    </td>

                    <td className="px-5 py-4 whitespace-nowrap text-right font-semibold text-slate-600 dark:text-slate-400 text-xs">
                      ₹{row.cash.toFixed(2)}
                    </td>

                    <td className="px-5 py-4 whitespace-nowrap text-right font-semibold text-slate-600 dark:text-slate-400 text-xs">
                      ₹{row.upi.toFixed(2)}
                    </td>

                    <td className="px-5 py-4 whitespace-nowrap text-right font-semibold text-slate-600 dark:text-slate-400 text-xs">
                      ₹{row.card.toFixed(2)}
                    </td>

                    <td className="px-5 py-4 whitespace-nowrap text-right font-semibold text-slate-600 dark:text-slate-400 text-xs">
                      ₹{row.wastage.toFixed(2)}
                    </td>

                    <td className="px-5 py-4 whitespace-nowrap text-right font-semibold text-slate-600 dark:text-slate-400 text-xs">
                      ₹{row.expenses.toFixed(2)}
                    </td>

                    <td className={`px-5 py-4 whitespace-nowrap text-right font-semibold text-xs ${row.variance !== 0 ? 'text-rose-600 dark:text-rose-400 ' : 'text-slate-500 dark:text-slate-400'}`}>
                      {row.variance > 0 ? `+₹${row.variance.toFixed(2)}` : row.variance < 0 ? `-₹${Math.abs(row.variance).toFixed(2)}` : '₹0.00'}
                    </td>

                    <td className="px-5 py-4 whitespace-nowrap text-center">
                      <span
                        className={`px-3 py-1 rounded-full text-[11px] font-semibold border ${
                          row.closing_status === 'APPROVED'
                            ? 'bg-emerald-50 text-emerald-600 border-emerald-200 dark:bg-emerald-500/10 dark:text-emerald-400 dark:border-emerald-500/20'
                            : row.closing_status === 'SUBMITTED'
                            ? 'bg-amber-50 text-amber-600 border-amber-200 dark:bg-amber-500/10 dark:text-amber-400 dark:border-amber-500/20'
                            : 'bg-slate-100 text-slate-500 border-slate-200 dark:bg-slate-500/10 dark:text-slate-400 dark:border-slate-500/20'
                        }`}
                      >
                        {row.closing_status}
                      </span>
                    </td>
                  </tr>
                ))}
              </tbody>
            </table>
          </div>
        </div>
      </div>
    </AuthenticatedLayout>
  );
}

