Keep bot credentials out of durable command results, fail bot deletion closed when session revocation fails, reject invalid scam/fake states at every write boundary, and make direct collectible grants a single replayable PostgreSQL aggregate. Also lock admin gift sender/message limits and add regression coverage for rollback, replay, moderation constraints, and credential redaction.
19 lines
926 B
SQL
19 lines
926 B
SQL
-- SCAM / FAKE moderation flags for users (incl. bots) and channels.
|
|
-- Mirrors the Layer 228 user.scam/user.fake and channel.scam/channel.fake TL flags.
|
|
ALTER TABLE public.users
|
|
ADD COLUMN IF NOT EXISTS scam boolean DEFAULT false NOT NULL,
|
|
ADD COLUMN IF NOT EXISTS fake boolean DEFAULT false NOT NULL;
|
|
|
|
UPDATE public.users SET fake = false WHERE scam AND fake;
|
|
ALTER TABLE public.users
|
|
DROP CONSTRAINT IF EXISTS users_scam_fake_mutually_exclusive,
|
|
ADD CONSTRAINT users_scam_fake_mutually_exclusive CHECK (NOT (scam AND fake));
|
|
|
|
ALTER TABLE public.channels
|
|
ADD COLUMN IF NOT EXISTS scam boolean DEFAULT false NOT NULL,
|
|
ADD COLUMN IF NOT EXISTS fake boolean DEFAULT false NOT NULL;
|
|
|
|
UPDATE public.channels SET fake = false WHERE scam AND fake;
|
|
ALTER TABLE public.channels
|
|
DROP CONSTRAINT IF EXISTS channels_scam_fake_mutually_exclusive,
|
|
ADD CONSTRAINT channels_scam_fake_mutually_exclusive CHECK (NOT (scam AND fake));
|