import React from 'react';

const events = [
  { time: '2026-05-07', tenant: 'DiveBase', type: 'tenant_locked', severity: 'critical', status: 'offen' },
  { time: '2026-05-07', tenant: 'Hochrhein', type: 'support_access', severity: 'warning', status: 'geprüft' },
  { time: '2026-05-06', tenant: 'System', type: 'template_change', severity: 'info', status: 'dokumentiert' },
];

function Badge({ children }) {
  return <span className="inline-flex rounded-full border border-slate-200 bg-slate-100 px-3 py-1 text-xs font-semibold text-slate-700">{children}</span>;
}

function Card({ title, children }) {
  return (
    <section className="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm">
      <h2 className="text-lg font-bold">{title}</h2>
      <div className="mt-4">{children}</div>
    </section>
  );
}

export default function SA08AuditSicherheitsereignisse() {
  return (
    <div className="min-h-screen bg-slate-50 p-6 text-slate-900">
      <div className="mx-auto max-w-7xl space-y-5">
        <header className="rounded-2xl border border-sky-200 bg-sky-50 p-6 shadow-sm">
          <div className="flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between">
            <div>
              <p className="text-sm font-semibold uppercase tracking-wide text-sky-700">UC-SA · SA-08</p>
              <h1 className="mt-1 text-3xl font-bold">Audit & Sicherheitsereignisse</h1>
              <p className="mt-2 max-w-3xl text-sm text-slate-600">Plattformweite Prüfung sicherheitsrelevanter Ereignisse.</p>
            </div>
            <div className="flex flex-wrap gap-2">
              <button className="rounded-xl border border-slate-300 bg-white px-4 py-2 text-sm font-semibold text-slate-800">SA-01</button>
              <button className="rounded-xl border border-slate-300 bg-white px-4 py-2 text-sm font-semibold text-slate-800">SA-03</button>
              <button className="rounded-xl bg-sky-700 px-4 py-2 text-sm font-semibold text-white">Prüfen</button>
            </div>
          </div>
        </header>

        <section className="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm">
          <h2 className="text-lg font-bold">Filter</h2>
          <div className="mt-4 grid gap-3 lg:grid-cols-6">
            {['Zeitraum', 'Tenant', 'Ereignistyp', 'Schweregrad', 'Status'].map((label) => (
              <div key={label} className="rounded-xl border border-slate-300 bg-slate-50 px-3 py-2 text-sm font-semibold text-slate-700">{label}</div>
            ))}
            <button className="rounded-xl bg-slate-900 px-3 py-2 text-sm font-semibold text-white">Laden</button>
          </div>
        </section>

        <div className="grid gap-5 lg:grid-cols-[2fr_1fr]">
          <section className="overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-sm">
            <div className="border-b border-slate-200 px-5 py-4">
              <h2 className="text-lg font-bold">Ereignisliste</h2>
              <p className="text-sm text-slate-500">Audit-Inhalte sind lesend und nicht direkt editierbar.</p>
            </div>
            <div className="overflow-x-auto">
              <table className="w-full min-w-[760px] text-left text-sm">
                <thead className="bg-slate-100 text-xs uppercase tracking-wide text-slate-600">
                  <tr>
                    <th className="px-5 py-3">Zeitpunkt</th>
                    <th className="px-5 py-3">Tenant</th>
                    <th className="px-5 py-3">Typ</th>
                    <th className="px-5 py-3">Grad</th>
                    <th className="px-5 py-3">Status</th>
                  </tr>
                </thead>
                <tbody className="divide-y divide-slate-100">
                  {events.map((event) => (
                    <tr key={`${event.time}-${event.tenant}-${event.type}`} className="hover:bg-slate-50">
                      <td className="px-5 py-4 text-slate-600">{event.time}</td>
                      <td className="px-5 py-4 font-semibold">{event.tenant}</td>
                      <td className="px-5 py-4 text-slate-600">{event.type}</td>
                      <td className="px-5 py-4"><Badge>{event.severity}</Badge></td>
                      <td className="px-5 py-4 text-slate-600">{event.status}</td>
                    </tr>
                  ))}
                </tbody>
              </table>
            </div>
          </section>

          <Card title="Ereignisdetail">
            <div className="space-y-3 text-sm text-slate-700">
              <p><strong>Audit-ID:</strong> audit_2026_000184</p>
              <p><strong>Typ:</strong> tenant_locked</p>
              <p><strong>Auslöser:</strong> superadmin</p>
              <p><strong>Grund:</strong> Sicherheitsprüfung erforderlich</p>
              <Badge>sensible Details ausgeblendet</Badge>
            </div>
          </Card>
        </div>

        <div className="grid gap-5 lg:grid-cols-2">
          <Card title="Prüfregeln">
            <ul className="list-disc space-y-2 pl-5 text-sm text-slate-700">
              <li>Audit-Inhalt ist nicht editierbar.</li>
              <li>Tokens, Secrets und Passwörter werden ausgeblendet.</li>
              <li>Prüfstatus ergänzt nur Metadaten.</li>
            </ul>
          </Card>

          <Card title="Kontextaktionen">
            <div className="flex flex-wrap gap-2">
              <button className="rounded-xl border border-slate-300 px-4 py-2 text-sm font-semibold text-slate-700">SA-03</button>
              <button className="rounded-xl border border-slate-300 px-4 py-2 text-sm font-semibold text-slate-700">SA-05</button>
              <button className="rounded-xl bg-sky-700 px-4 py-2 text-sm font-semibold text-white">als geprüft markieren</button>
            </div>
          </Card>
        </div>

        <section className="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm">
          <p className="text-sm text-slate-600">Audit-Einträge sind lesend. Prüfstatus ergänzt Metadaten, verändert aber nicht den Ereignisinhalt.</p>
        </section>
      </div>
    </div>
  );
}
