import React from 'react';

const customers = [
  { name: 'Maria Keller', info: '2 aktive Karten · 1 offener Abruf', selected: true, badge: 'Abruf offen', tone: 'yellow' },
  { name: 'Luca Meier', info: '1 aktive Karte · kein Konflikt', selected: false },
  { name: 'Nina Graf', info: '1 Punktekarte · pending_sync', selected: false, badge: 'gesperrt', tone: 'yellow' },
  { name: 'Tom Berger', info: 'Saisonabo leer', selected: false, badge: 'leer', tone: 'red' },
];

const accounts = [
  {
    model: '10+3 Bonuskarte Luft',
    info: 'Restguthaben: 8 / 13 Füllungen · letzte Buchung: 2026-05-07',
    badges: [
      ['aktiv', 'green'],
      ['Self-Service aktiv', 'blue'],
      ['Bestätigung nötig', 'blue'],
    ],
    selectable: true,
    selected: true,
  },
  {
    model: '10er-Karte Nitrox 32',
    info: 'Restguthaben: 3 / 10 · Punkteverbrauch nach Gasart',
    badges: [['aktiv', 'green']],
    selectable: true,
    selected: false,
  },
  {
    model: 'Punktekarte gemischt',
    info: 'Restguthaben: 14 Punkte · nicht synchronisierte Offline-Buchung',
    badges: [['pending_sync', 'yellow']],
    selectable: false,
    selected: false,
  },
];

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 FA05KundeFuellkontoAuswaehlen() {
  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">UC03 · FA-05</p>
              <h1 className="mt-1 text-3xl font-bold">Kunde / Füllkonto auswählen</h1>
              <p className="mt-2 max-w-3xl text-sm text-slate-600">
                Kunde, Karte, Abo oder QR-/Abrufcode suchen und für den Füllvorgang übernehmen.
              </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">Abbrechen</button>
              <button className="rounded-xl bg-sky-700 px-4 py-2 text-sm font-semibold text-white">Auswahl übernehmen</button>
            </div>
          </div>
        </header>

        <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-6">
            <div className="lg:col-span-2">
              <label className="text-xs font-semibold uppercase tracking-wide text-slate-500">Suche</label>
              <div className="mt-1 rounded-xl border border-slate-300 bg-slate-50 px-3 py-2 text-sm text-slate-500">
                Name, Kundennummer, Karte, Abo, QR-Code ...
              </div>
            </div>
            {['Status', 'Modell', 'Gasart'].map((label) => (
              <div key={label}>
                <label className="text-xs font-semibold uppercase tracking-wide text-slate-500">{label}</label>
                <div className="mt-1 rounded-xl border border-slate-300 bg-slate-50 px-3 py-2 text-sm text-slate-700">Alle</div>
              </div>
            ))}
            <div className="flex items-end">
              <button className="w-full rounded-xl bg-slate-900 px-3 py-2 text-sm font-semibold text-white">QR scannen</button>
            </div>
          </div>
          <div className="mt-4 flex flex-wrap gap-2">
            <Badge tone="green">nur nutzbare anzeigen</Badge>
            <Badge tone="gray">QR öffnet nur Konto</Badge>
            <Badge tone="gray">keine direkte Buchung</Badge>
          </div>
        </section>

        <div className="grid gap-5 lg:grid-cols-[390px_1fr]">
          <section className="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm">
            <h2 className="text-lg font-bold">Kunden</h2>
            <div className="mt-4 space-y-3">
              {customers.map((customer) => (
                <div
                  key={customer.name}
                  className={`rounded-2xl border p-4 ${customer.selected ? 'border-sky-300 bg-sky-50' : 'border-slate-200 bg-slate-50'}`}
                >
                  <div className="flex items-start justify-between gap-3">
                    <div>
                      <p className="font-semibold">{customer.name}</p>
                      <p className="mt-1 text-sm text-slate-500">{customer.info}</p>
                    </div>
                    {customer.badge ? <Badge tone={customer.tone}>{customer.badge}</Badge> : null}
                  </div>
                </div>
              ))}
            </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">Füllkonten von Maria Keller</h2>
                <p className="text-sm text-slate-500">Nicht nutzbare Füllkonten sind sichtbar, aber nicht auswählbar.</p>
              </div>
              <button className="rounded-xl border border-slate-300 px-4 py-2 text-sm font-semibold text-slate-700">Neues Konto anlegen</button>
            </div>

            <div className="mt-4 space-y-4">
              {accounts.map((account) => (
                <div
                  key={account.model}
                  className={`rounded-2xl border p-5 ${account.selected ? 'border-sky-300 bg-sky-50' : 'border-slate-200 bg-slate-50'}`}
                >
                  <div className="flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between">
                    <div>
                      <p className="text-lg font-semibold">{account.model}</p>
                      <p className="mt-1 text-sm text-slate-500">{account.info}</p>
                      <div className="mt-3 flex flex-wrap gap-2">
                        {account.badges.map(([label, tone]) => (
                          <Badge key={label} tone={tone}>{label}</Badge>
                        ))}
                      </div>
                    </div>
                    <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">Detail</button>
                      <button
                        className={`rounded-xl px-4 py-2 text-sm font-semibold ${account.selectable ? 'bg-sky-700 text-white' : 'cursor-not-allowed bg-slate-200 text-slate-500'}`}
                      >
                        {account.selectable ? 'Auswählen' : 'gesperrt'}
                      </button>
                    </div>
                  </div>
                </div>
              ))}
            </div>
          </section>
        </div>

        <section className="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm">
          <p className="text-sm text-slate-600">
            Hinweis: QR-Code oder Abrufcode identifiziert ein Füllkonto, löst aber keine direkte Buchung aus. Die Auswahl führt weiter zu FA-04 oder FA-07.
          </p>
        </section>
      </div>
    </div>
  );
}
