import React from 'react';
import db from '@/lib/db';
import AdminDashboardClient from './AdminDashboardClient';
import { getAnalyticsSummary } from '@/lib/analytics/service';

export default async function AdminDashboard() {
  // Fetch stats using direct SQL with safety
  const safeQuery = async (sql: string) => {
    try {
      return await db.query(sql) as any[];
    } catch (e) {
      return [];
    }
  };

  const products = await safeQuery(`SELECT * FROM Product`);
  const actions = await safeQuery(`SELECT * FROM UserAction ORDER BY createdAt DESC`);
  
  const totalProducts = products.length;
  // Calculate unique visitors
  const visitorsSet = new Set(actions.map(a => a.visitorId).filter(Boolean));
  const totalVisitors = visitorsSet.size;

  // Fetch analytics summary from the new analytics_events table
  let analyticsSummary = null;
  try {
    analyticsSummary = await getAnalyticsSummary();
  } catch (e) {
    // analytics_events table may not exist yet — silently continue
    analyticsSummary = null;
  }

  return (
    <AdminDashboardClient 
      actions={actions}
      products={products}
      totalVisitors={totalVisitors}
      totalProducts={totalProducts}
      analyticsSummary={analyticsSummary}
    />
  );
}
