import { getSession } from "@/lib/auth";
import { queryRows, queryOne } from "@/lib/db";
import { redirect } from "next/navigation";

export default async function DashboardPage() {
  const session = await getSession();

  if (!session || (session.role !== "admin" && session.role !== "manager")) {
    redirect("/leads");
  }

  // Statistics
  const totalRow = await queryOne("SELECT COUNT(*) as count FROM leads");
  const totalLeads = totalRow?.count || 0;
  
  const statusStats = await queryRows(`
    SELECT status, COUNT(*) as count 
    FROM leads 
    GROUP BY status
  `);

  // Today's activities
  const today = new Date().toISOString().split('T')[0];
  const todayRow = await queryOne(
    "SELECT COUNT(*) as count FROM notes WHERE DATE(created_at) = ?",
    [today]
  );
  const todayActions = todayRow?.count || 0;

  const getStatusLabel = (status: string) => {
    const labels: Record<string, string> = {
      yeni_atama: "Yeni Atama",
      cevapsiz: "Cevapsız",
      ilgili: "İlgili",
      ilgisiz: "İlgisiz",
      yanlis_numara: "Yanlış Numara",
      tekrar_ara: "Tekrar Ara",
      kara_liste: "Kara Liste",
      yatirimci: "Yatırımcı"
    };
    return labels[status] || status;
  };

  const getStatusColor = (status: string) => {
    const colors: Record<string, string> = {
      yeni_atama: "bg-purple-100 text-purple-800",
      cevapsiz: "bg-gray-100 text-gray-800",
      ilgili: "bg-blue-100 text-blue-800",
      ilgisiz: "bg-red-100 text-red-800",
      yanlis_numara: "bg-orange-100 text-orange-800",
      tekrar_ara: "bg-yellow-100 text-yellow-800",
      kara_liste: "bg-black text-white",
      yatirimci: "bg-green-100 text-green-800"
    };
    return colors[status] || "bg-gray-100 text-gray-800";
  };

  return (
    <div>
      <h1 className="text-2xl font-bold mb-6">Dashboard</h1>
      
      <div className="grid grid-cols-1 md:grid-cols-3 gap-6 mb-8">
        <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700">
          <h3 className="text-gray-500 dark:text-gray-400 text-sm font-medium uppercase mb-2">Toplam Lead</h3>
          <div className="text-3xl font-bold text-gray-900 dark:text-white">{totalLeads}</div>
        </div>
        
        <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700">
          <h3 className="text-gray-500 dark:text-gray-400 text-sm font-medium uppercase mb-2">Bugünkü İşlemler (Not)</h3>
          <div className="text-3xl font-bold text-gray-900 dark:text-white">{todayActions}</div>
        </div>

        <div className="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700">
          <h3 className="text-gray-500 dark:text-gray-400 text-sm font-medium uppercase mb-2">Sisteme Giriş Yapan</h3>
          <div className="text-xl font-bold text-gray-900 dark:text-white">{session.fullName} ({session.role})</div>
        </div>
      </div>

      <h2 className="text-xl font-bold mb-4">Statüs Dağılımı</h2>
      <div className="grid grid-cols-2 md:grid-cols-4 gap-4">
        {statusStats.map((stat: any) => (
          <div key={stat.status} className={`p-4 rounded-lg flex flex-col items-center justify-center ${getStatusColor(stat.status)}`}>
            <span className="text-3xl font-bold mb-1">{stat.count}</span>
            <span className="text-sm font-medium">{getStatusLabel(stat.status)}</span>
          </div>
        ))}
      </div>
    </div>
  );
}
