-- Account-Lockout & Login-Rate-Limiting (IAM-07, siehe
-- core-kanban/tickets/IAM-07.md). Geteilter, externer Zustand in Postgres —
-- kein In-Process-Zaehler (bekannter Fehler aus archivdms
-- internal/auth/ratelimit.go), gilt korrekt ueber mehrere Core-Instanzen.
CREATE TABLE login_attempts (
    email           TEXT PRIMARY KEY,
    failed_count    INT NOT NULL DEFAULT 0,
    locked_until    TIMESTAMPTZ,
    last_attempt_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
