import { Bot, FileScan, Lightbulb } from 'lucide-react';

import { RegistryDrivenForm } from '@/components/admin/shared/registry-driven-form';
import { PageHeader } from '@/components/shared/page-header';
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
import { OcrSettingsForm } from '@/components/admin/ocr-settings-form';

export default function AiAdminPage() {
  return (
    <div className="space-y-6">
      <PageHeader
        title="AI configuration"
        description="One place to manage every AI-using feature. Provider credentials and the master AI switch live here; per-feature thresholds are embedded below."
        eyebrow="ADMIN"
      />

      <RegistryDrivenForm
        title="Master controls"
        description="Hard kill switch + budget guardrails covering every AI surface in this port."
        sections={['ai.master']}
      />

      <RegistryDrivenForm
        title="Provider credentials"
        description="Shared API keys used by AI-enabled features. AES-encrypted at rest. Per-feature pages can override the model on a feature-by-feature basis."
        sections={['ai.providers']}
      />

      <Card>
        <CardHeader>
          <CardTitle className="text-base flex items-center gap-2">
            <Bot className="h-4 w-4" /> Receipt OCR
          </CardTitle>
          <CardDescription>
            Provider, model, and confidence thresholds for the receipt scanner. AI fallback only
            runs when the on-device parser is uncertain.
          </CardDescription>
        </CardHeader>
        <CardContent>
          <OcrSettingsForm embedded />
        </CardContent>
      </Card>

      {/*
        Berth-PDF parser AI fallback - currently configured via the
        BERTH_PDF_PARSER_* env vars. No per-port override surface today;
        when one is added, it lands here so admins don't have to hunt.
      */}
      <Card>
        <CardHeader>
          <CardTitle className="text-base flex items-center gap-2">
            <FileScan className="h-4 w-4" /> Berth PDF parser
          </CardTitle>
          <CardDescription>
            3-tier extraction (AcroForm → on-device OCR → AI fallback on low confidence) for
            per-berth PDFs and brochures. Provider + confidence threshold are env-controlled today
            (BERTH_PDF_PARSER_PROVIDER, BERTH_PDF_PARSER_CONFIDENCE_FLOOR); a per-port override UI
            lands in a follow-up. The master switch above gates the AI tier across every port.
          </CardDescription>
        </CardHeader>
      </Card>

      {/*
        Future AI surfaces. Each gets a section here once it ships:
          - Recommender embeddings (currently rule-based, not LLM-based)
          - Contact-log action extraction (deferred - needs user demand)
          - Inquiry-form auto-classification (deferred)
        Listing them inert here closes the "where do I configure AI?"
        loop - admins land on /admin/ai and see the full landscape.
      */}
      <Card>
        <CardHeader>
          <CardTitle className="text-base flex items-center gap-2 text-muted-foreground">
            <Lightbulb className="h-4 w-4" /> Planned AI surfaces
          </CardTitle>
          <CardDescription>
            Recommender embeddings, contact-log action extraction, and inquiry-form auto-
            classification are queued. They will surface as additional sections on this page when
            shipped, with no scattered admin entries to hunt down.
          </CardDescription>
        </CardHeader>
      </Card>
    </div>
  );
}
