Add trait-based hide rules and searchable block list

This commit is contained in:
Ryan Salazar
2026-06-26 22:24:42 -04:00
parent dd075da6a4
commit 44c27c17b6
12 changed files with 1183 additions and 13 deletions

View File

@@ -0,0 +1,48 @@
-- ExposedGays privacy: trait hide rules + block list (cloud sync)
ALTER TABLE profiles
ADD COLUMN IF NOT EXISTS height_in integer,
ADD COLUMN IF NOT EXISTS weight_lb integer,
ADD COLUMN IF NOT EXISTS body_type text;
CREATE TABLE IF NOT EXISTS hide_from_rules (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
user_id uuid NOT NULL REFERENCES profiles(id) ON DELETE CASCADE,
label text NOT NULL DEFAULT '',
height_in integer,
height_tolerance_in integer DEFAULT 1,
weight_lb integer,
weight_tolerance_lb integer DEFAULT 10,
age_min integer,
age_max integer,
positions text[] DEFAULT '{}',
body_types text[] DEFAULT '{}',
kinks text[] DEFAULT '{}',
communities text[] DEFAULT '{}',
created_at timestamptz NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS idx_hide_from_rules_user ON hide_from_rules(user_id);
CREATE TABLE IF NOT EXISTS user_blocks (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
blocker_id uuid NOT NULL REFERENCES profiles(id) ON DELETE CASCADE,
blocked_id uuid NOT NULL REFERENCES profiles(id) ON DELETE CASCADE,
blocked_username text,
blocked_display_name text,
blocked_avatar_url text,
created_at timestamptz NOT NULL DEFAULT now(),
UNIQUE (blocker_id, blocked_id)
);
CREATE INDEX IF NOT EXISTS idx_user_blocks_blocker ON user_blocks(blocker_id);
CREATE INDEX IF NOT EXISTS idx_user_blocks_blocked ON user_blocks(blocked_id);
ALTER TABLE hide_from_rules ENABLE ROW LEVEL SECURITY;
ALTER TABLE user_blocks ENABLE ROW LEVEL SECURITY;
CREATE POLICY hide_from_rules_own ON hide_from_rules
FOR ALL USING (auth.uid() = user_id);
CREATE POLICY user_blocks_own ON user_blocks
FOR ALL USING (auth.uid() = blocker_id);