import React from 'react';

const users = [
  { name: 'David Admin', email: 'david@example.test', role: 'tenant_admin', status: 'aktiv', login: '2026-05-07', hint: 'Admin-Schutz', tone: 'green' },
  { name: 'Anna Müller', email: 'anna@example.test', role: 'mitarbeiter', status: 'aktiv', login: '2026-05-06', hint: '-', tone: 'green' },
  { name: 'Markus Keller', email: 'markus@example.test', role: 'tenant_admin', status: 'aktiv', login: 'nie', hint: '2FA offen', tone: 'green' },
  { name: 'Lisa Beispiel', email: 'lisa@example.test', role: 'mitarbeiter', status: 'inaktiv', login: '2026-04-20', hint: 'deaktiviert', tone: 'red' },
];

const invitations = [
  { email: 'max@example.test', role: 'mitarbeiter', expires: '2026-05-14', status: 'pending' },
  { email: 'sara@example.test', role: 'tenant_admin', expires: '2026-05-10', status: 'pending' },
];

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>;
}

export default function BU01Benutzeruebersicht() {
  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">UC08 · BU-01</p>
              <h1 className="mt-1 text-3xl font-bold">Benutzerübersicht</h1>
              <p className="mt-2 max-w-3xl text-sm text-slate-600">Benutzer, Rollen, Einladungen und Sicherheitsstatus je Tenant.</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">Audit</button>
              <button className="rounded-xl border border-slate-300 bg-white px-4 py-2 text-sm font-semibold text-slate-800">Filter</button>
              <button className="rounded-xl bg-sky-700 px-4 py-2 text-sm font-semibold text-white">Benutzer einladen</button>
            </div>
          </div>
        </header>

        <section className="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm">
          <h2 className="text-lg font-bold">Tenant-Status</h2>
          <div className="mt-4 flex flex-wrap gap-2">
            <Badge tone="green">4 aktive Benutzer</Badge>
            <Badge tone="yellow">2 offene Einladungen</Badge>
            <Badge tone="blue">2 tenant_admins</Badge>
            <Badge tone="yellow">letzter Admin-Schutz aktiv</Badge>
            <Badge tone="gray">Tenant-Isolation aktiv</Badge>
          </div>
        </section>

        <section className="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm">
          <h2 className="text-lg font-bold">Suche & Filter</h2>
          <div className="mt-4 grid gap-3 lg:grid-cols-5">
            <div className="rounded-xl border border-slate-300 bg-slate-50 px-3 py-2 text-sm text-slate-500 lg:col-span-2">Name, E-Mail, Rolle ...</div>
            <div className="rounded-xl border border-slate-300 bg-slate-50 px-3 py-2 text-sm font-semibold">Rolle</div>
            <div className="rounded-xl border border-slate-300 bg-slate-50 px-3 py-2 text-sm font-semibold">Status</div>
            <button className="rounded-xl bg-slate-900 px-3 py-2 text-sm font-semibold text-white">Filtern</button>
          </div>
        </section>

        <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">Benutzer</h2>
            <p className="text-sm text-slate-500">Kritische Aktionen öffnen nachgelagerte Bestätigungsdialoge.</p>
          </div>
          <div className="overflow-x-auto">
            <table className="w-full min-w-[1000px] text-left text-sm">
              <thead className="bg-slate-100 text-xs uppercase tracking-wide text-slate-600">
                <tr>
                  <th className="px-5 py-3">Name</th>
                  <th className="px-5 py-3">E-Mail</th>
                  <th className="px-5 py-3">Rolle</th>
                  <th className="px-5 py-3">Status</th>
                  <th className="px-5 py-3">letzter Login</th>
                  <th className="px-5 py-3">Hinweis</th>
                  <th className="px-5 py-3">Aktion</th>
                </tr>
              </thead>
              <tbody className="divide-y divide-slate-100">
                {users.map((user) => (
                  <tr key={user.email} className="hover:bg-slate-50">
                    <td className="px-5 py-4 font-semibold">{user.name}</td>
                    <td className="px-5 py-4 text-slate-600">{user.email}</td>
                    <td className="px-5 py-4">{user.role}</td>
                    <td className="px-5 py-4"><Badge tone={user.tone}>{user.status}</Badge></td>
                    <td className="px-5 py-4 text-slate-600">{user.login}</td>
                    <td className="px-5 py-4 text-slate-600">{user.hint}</td>
                    <td className="px-5 py-4"><button className="rounded-lg border border-slate-300 px-3 py-1 text-xs font-semibold text-slate-700">Profil</button></td>
                  </tr>
                ))}
              </tbody>
            </table>
          </div>
        </section>

        <section className="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm">
          <div className="flex flex-col gap-3 md:flex-row md:items-center md:justify-between">
            <div>
              <h2 className="text-lg font-bold">Offene Einladungen</h2>
              <p className="text-sm text-slate-500">Einladungen können erneut versendet oder widerrufen werden.</p>
            </div>
            <button className="rounded-xl bg-sky-700 px-4 py-2 text-sm font-semibold text-white">BU-02 öffnen</button>
          </div>
          <div className="mt-4 grid gap-3 md:grid-cols-2">
            {invitations.map((invitation) => (
              <div key={invitation.email} className="rounded-2xl border border-slate-200 bg-slate-50 p-4">
                <p className="font-semibold">{invitation.email}</p>
                <p className="mt-1 text-sm text-slate-500">Rolle: {invitation.role} · Ablauf: {invitation.expires}</p>
                <div className="mt-3 flex flex-wrap gap-2">
                  <Badge tone="yellow">{invitation.status}</Badge>
                  <button className="rounded-lg border border-slate-300 px-3 py-1 text-xs font-semibold text-slate-700">erneut senden</button>
                  <button className="rounded-lg border border-red-200 bg-red-50 px-3 py-1 text-xs font-semibold text-red-700">widerrufen</button>
                </div>
              </div>
            ))}
          </div>
        </section>
      </div>
    </div>
  );
}
