import React from 'react';

const rules = [
  { name: 'Frist bald fällig', trigger: 'due_soon', recipient: 'Kunde', channel: 'E-Mail', status: 'aktiv', tone: 'green' },
  { name: 'Frist überfällig', trigger: 'overdue', recipient: 'Kunde', channel: 'E-Mail', status: 'Tenant', tone: 'blue' },
  { name: 'Equipment gesperrt', trigger: 'blocked', recipient: 'intern', channel: 'intern', status: 'aktiv', tone: 'green' },
  { name: 'Daten prüfen', trigger: 'unknown', recipient: 'Mitarbeiter', channel: 'intern', status: 'Entwurf', tone: 'yellow' },
];

const scopes = [
  { label: 'due_soon', tone: 'green' },
  { label: 'due_today', tone: 'green' },
  { label: 'overdue', tone: 'green' },
  { label: 'blocked', tone: 'green' },
  { label: 'unknown_due', tone: 'yellow' },
];

const checks = [
  { label: 'Vorlage aktiv', tone: 'green' },
  { label: 'Kanal aktiv', tone: 'green' },
  { label: 'manuelle Freigabe', tone: 'blue' },
  { label: 'Tenant-Isolation OK', tone: 'green' },
];

function Badge({ children, tone = 'gray' }) {
  const tones = {
    green: 'bg-green-100 text-green-800 border-green-200',
    blue: 'bg-blue-100 text-blue-800 border-blue-200',
    yellow: 'bg-yellow-100 text-yellow-800 border-yellow-200',
    red: 'bg-red-100 text-red-800 border-red-200',
    gray: 'bg-slate-100 text-slate-700 border-slate-200',
  };
  return <span className={`inline-flex rounded-full border px-3 py-1 text-xs font-semibold ${tones[tone]}`}>{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 BN08Benachrichtigungsregeln() {
  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">UC07 · BN-08</p>
              <h1 className="mt-1 text-3xl font-bold">Benachrichtigungsregeln</h1>
              <p className="mt-2 max-w-3xl text-sm text-slate-600">Einfache V1-Regeln für Fristenbenachrichtigungen aus UC05.</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">BN-01</button>
              <button className="rounded-xl border border-slate-300 bg-white px-4 py-2 text-sm font-semibold text-slate-800">BN-07</button>
              <button className="rounded-xl bg-sky-700 px-4 py-2 text-sm font-semibold text-white">Speichern</button>
            </div>
          </div>
        </header>

        <section className="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm">
          <h2 className="text-lg font-bold">Regelstatus</h2>
          <div className="mt-4 flex flex-wrap gap-2">
            <Badge tone="green">4 aktiv</Badge>
            <Badge tone="yellow">1 Entwurf</Badge>
            <Badge tone="blue">manuelle Freigabe</Badge>
            <Badge tone="gray">Systemregeln geschützt</Badge>
            <Badge tone="gray">kein automatischer Versand</Badge>
          </div>
        </section>

        <div className="grid gap-5 lg:grid-cols-2">
          <Card title="Regelliste">
            <div className="overflow-x-auto">
              <table className="w-full text-left text-sm">
                <thead className="bg-slate-100 text-xs uppercase tracking-wide text-slate-600">
                  <tr>
                    <th className="px-4 py-3">Name</th>
                    <th className="px-4 py-3">Auslöser</th>
                    <th className="px-4 py-3">Empfänger</th>
                    <th className="px-4 py-3">Kanal</th>
                    <th className="px-4 py-3">Status</th>
                  </tr>
                </thead>
                <tbody className="divide-y divide-slate-100">
                  {rules.map((rule) => (
                    <tr key={rule.name} className="hover:bg-slate-50">
                      <td className="px-4 py-3 font-semibold">{rule.name}</td>
                      <td className="px-4 py-3 text-slate-600">{rule.trigger}</td>
                      <td className="px-4 py-3 text-slate-600">{rule.recipient}</td>
                      <td className="px-4 py-3 text-slate-600">{rule.channel}</td>
                      <td className="px-4 py-3"><Badge tone={rule.tone}>{rule.status}</Badge></td>
                    </tr>
                  ))}
                </tbody>
              </table>
            </div>
          </Card>

          <Card title="Regeldetails">
            <div className="space-y-4">
              <div>
                <p className="text-xs font-semibold uppercase tracking-wide text-slate-500">Name</p>
                <div className="mt-1 rounded-xl border border-slate-300 bg-slate-50 px-4 py-2 text-sm">Frist überfällig</div>
              </div>
              <div className="grid gap-3 sm:grid-cols-2">
                <div className="rounded-xl border border-slate-300 bg-slate-50 px-4 py-2 text-sm">Auslöser: overdue</div>
                <div className="rounded-xl border border-slate-300 bg-slate-50 px-4 py-2 text-sm">Zeitraum: nach Frist</div>
              </div>
              <div className="grid gap-3 sm:grid-cols-3">
                <div className="rounded-xl border border-slate-300 bg-slate-50 px-4 py-2 text-sm">Kunde</div>
                <div className="rounded-xl border border-slate-300 bg-slate-50 px-4 py-2 text-sm">E-Mail</div>
                <div className="rounded-xl border border-slate-300 bg-slate-50 px-4 py-2 text-sm">Frist überfällig</div>
              </div>
            </div>
          </Card>
        </div>

        <div className="grid gap-5 lg:grid-cols-2">
          <Card title="V1-Regelumfang">
            <div className="flex flex-wrap gap-2">
              {scopes.map((item) => <Badge key={item.label} tone={item.tone}>{item.label}</Badge>)}
            </div>
          </Card>

          <Card title="Sicherheitsprüfung">
            <div className="flex flex-wrap gap-2">
              {checks.map((item) => <Badge key={item.label} tone={item.tone}>{item.label}</Badge>)}
            </div>
          </Card>
        </div>

        <section className="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm">
          <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">Testvorschau</button>
            <button className="rounded-xl border border-slate-300 px-4 py-2 text-sm font-semibold text-slate-700">Duplizieren</button>
            <button className="rounded-xl bg-sky-700 px-4 py-2 text-sm font-semibold text-white">Speichern</button>
          </div>
          <p className="mt-4 text-sm text-slate-500">Regeln erzeugen Vorschläge, keinen unkontrollierten Versand.</p>
        </section>
      </div>
    </div>
  );
}
