CREATE TABLE IF NOT EXISTS fieldlens_access_requests ( subject text PRIMARY KEY, username text, email text, status text NOT NULL CHECK (status IN ('pending', 'approved', 'rejected')), approved_role text CHECK ( approved_role IS NULL OR approved_role IN ( 'fieldlens-operator', 'fieldlens-supervisor', 'fieldlens-admin' ) ), requested_at timestamptz NOT NULL DEFAULT now(), reviewed_at timestamptz, reviewed_by text ); CREATE INDEX IF NOT EXISTS idx_fieldlens_access_requests_status_requested ON fieldlens_access_requests(status, requested_at);