// =============================================================================
// HeadlineSift.com — Fetch Logs Page Client Shell
// =============================================================================
"use client";

import FetchLogTable from "./FetchLogTable";
import type { FetchLogRow } from "./FetchLogTable";

// ============================================================================
// Types
// ============================================================================

interface SourceOption {
  id: string;
  name: string;
}

interface FetchLogsPageClientProps {
  logs: FetchLogRow[];
  sourceFilter: string | null;
  statusFilter: string | null;
  startDateFilter: string | null;
  endDateFilter: string | null;
  page: number;
  totalPages: number;
  totalCount: number;
  sourceOptions: SourceOption[];
}

// ============================================================================
// Component
// ============================================================================

export function FetchLogsPageClient({
  logs,
  sourceFilter,
  statusFilter,
  startDateFilter,
  endDateFilter,
  page,
  totalPages,
  totalCount,
  sourceOptions,
}: FetchLogsPageClientProps) {
  return (
    <div className="animate-fade-in space-y-6">
      {/* Page Header */}
      <div>
        <h1 className="text-2xl font-bold">Fetch Logs</h1>
        <p className="mt-1 text-sm text-body-muted">
          Audit trail for every source fetch. Debug broken sources, track
          article ingestion, and monitor fetch health.
        </p>
      </div>

      {/* Fetch Logs Table */}
      <FetchLogTable
        logs={logs}
        sourceFilter={sourceFilter}
        statusFilter={statusFilter}
        startDateFilter={startDateFilter}
        endDateFilter={endDateFilter}
        page={page}
        totalPages={totalPages}
        totalCount={totalCount}
        sourceOptions={sourceOptions}
      />
    </div>
  );
}
