import { Clock, Calendar, CheckCircle2 } from "lucide-react";
import { getTodayDrawsSchedule, getUpcomingDraws } from "@/lib/loto-data";
import { useState, useEffect } from "react";

export function UpcomingDraws() {
  const [upcoming, setUpcoming] = useState<any[]>([]);
  const [todayDraws, setTodayDraws] = useState<any[]>([]);

  useEffect(() => {
    // Refresh every minute to keep countdowns accurate
    const refreshData = () => {
      setUpcoming(getUpcomingDraws());
      setTodayDraws(getTodayDrawsSchedule());
    };
    
    refreshData();
    const interval = setInterval(refreshData, 60000);
    return () => clearInterval(interval);
  }, []);

  const now = new Date();
  const currentTimeStr = `${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}`;

  return (
    <div className="space-y-6">
      <div className="rounded-2xl border border-border bg-card p-6 shadow-[var(--shadow-card)]">
        <h3 className="font-display text-lg font-bold">Prochains tirages</h3>
        <p className="text-sm text-muted-foreground">Dans les prochaines heures</p>

        <div className="mt-4 space-y-3">
          {upcoming.map((draw, idx) => (
            <div
              key={`${draw.name}-${idx}`}
              className="flex items-center justify-between rounded-xl border border-border bg-[image:var(--gradient-surface)] p-3"
            >
              <div>
                <p className="font-display font-semibold">{draw.name}</p>
                <p className="text-xs text-muted-foreground">Prévu à {draw.time}</p>
              </div>
              <div className="flex items-center gap-1.5 rounded-lg gradient-orange px-2.5 py-1 text-xs font-semibold text-primary-foreground">
                <Clock className="h-3.5 w-3.5" />
                {draw.countdown}
              </div>
            </div>
          ))}
        </div>
      </div>

      <div className="rounded-2xl border border-border bg-card p-6 shadow-[var(--shadow-card)]">
        <h3 className="font-display text-lg font-bold flex items-center gap-2">
          <Calendar className="h-5 w-5 text-primary" />
          Programme du jour
        </h3>
        <p className="text-sm text-muted-foreground">Tous les tirages de la journée</p>

        <div className="mt-4 space-y-2">
          {todayDraws.map((draw, idx) => {
            const isPast = draw.time <= currentTimeStr;
            return (
              <div
                key={`${draw.name}-${idx}`}
                className={`flex items-center justify-between rounded-xl p-3 text-sm transition-colors ${
                  isPast ? 'bg-muted/50 text-muted-foreground' : 'bg-background border border-border'
                }`}
              >
                <div className="flex items-center gap-3">
                  <div className="font-mono font-semibold">{draw.time}</div>
                  <div className={isPast ? '' : 'font-semibold'}>{draw.name}</div>
                </div>
                {isPast && <CheckCircle2 className="h-4 w-4 text-green-500" />}
              </div>
            );
          })}
        </div>
      </div>
    </div>
  );
}
