-- Passkey (WebAuthn) — опциональный вход вместо пароля ALTER TABLE users ADD COLUMN IF NOT EXISTS passkey_enabled BOOLEAN NOT NULL DEFAULT false; CREATE TABLE IF NOT EXISTS webauthn_credentials ( id SERIAL PRIMARY KEY, user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, credential_id TEXT NOT NULL UNIQUE, public_key BYTEA NOT NULL, counter BIGINT NOT NULL DEFAULT 0, device_type VARCHAR(32), backed_up BOOLEAN NOT NULL DEFAULT false, transports TEXT, label TEXT NOT NULL DEFAULT 'Passkey', created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS idx_webauthn_credentials_user_id ON webauthn_credentials(user_id);