sojorn/go-backend/migrations/20260218_waitlist.sql
Patrick Britton e06b7252c4 feat: Admin panel completions — audit log, waitlist, feed reset, profile edit for all users
- Remove is_official gate: profile editor and follow manager now shown for all users
- Add /audit-log page: paginated view of all admin actions
- Add /waitlist page: approve/reject/delete waitlist entries with notes
- Add Feed Impression Reset button on user detail (clears user's seen-posts history)
- Add feed cooling/diversity thresholds to algorithm_config defaults (configurable via /algorithm)
- Go: AdminListWaitlist, AdminUpdateWaitlist, AdminDeleteWaitlist handlers
- Go: AdminResetFeedImpressions handler (DELETE /admin/users/:id/feed-impressions)
- Go: Register all new routes in main.go
- Sidebar: add Waitlist (Users & Content) and Audit Log (Platform) links
- DB: add 20260218_waitlist.sql migration
- api.ts: listWaitlist, updateWaitlist, deleteWaitlist, resetFeedImpressions methods

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-17 16:21:42 -06:00

17 lines
656 B
SQL

-- Waitlist table for managing early-access signups
CREATE TABLE IF NOT EXISTS waitlist (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
email text NOT NULL UNIQUE,
name text,
referral_code text,
invited_by text, -- email or user handle of referrer
status text NOT NULL DEFAULT 'pending', -- pending, approved, rejected, invited
notes text,
created_at timestamptz NOT NULL DEFAULT now(),
updated_at timestamptz NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS idx_waitlist_status ON waitlist(status);
CREATE INDEX IF NOT EXISTS idx_waitlist_created ON waitlist(created_at DESC);