diff --git a/backend/supabase/bookmarked_searches.sql b/backend/supabase/bookmarked_searches.sql new file mode 100644 index 00000000..d3f44453 --- /dev/null +++ b/backend/supabase/bookmarked_searches.sql @@ -0,0 +1,39 @@ +CREATE TABLE IF NOT EXISTS bookmarked_searches ( + id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, + created_time TIMESTAMPTZ DEFAULT now() NOT NULL, + creator_id TEXT NOT NULL, + search_filters JSONB, + last_notified_at TIMESTAMPTZ DEFAULT NULL, + search_name TEXT DEFAULT NULL +); + +-- Row Level Security +ALTER TABLE bookmarked_searches ENABLE ROW LEVEL SECURITY; + + +-- Policies +DROP POLICY IF EXISTS "public read" ON bookmarked_searches; +CREATE POLICY "public read" ON bookmarked_searches + FOR SELECT USING (true); + +DROP POLICY IF EXISTS "self delete" ON bookmarked_searches; +CREATE POLICY "self delete" ON bookmarked_searches + FOR DELETE USING (creator_id = firebase_uid()); + +DROP POLICY IF EXISTS "self insert" ON bookmarked_searches; +CREATE POLICY "self insert" ON bookmarked_searches + FOR INSERT WITH CHECK (creator_id = firebase_uid()); + +DROP POLICY IF EXISTS "self update" ON bookmarked_searches; +CREATE POLICY "self update" ON bookmarked_searches + FOR UPDATE USING (creator_id = firebase_uid()); + +-- Indexes +CREATE INDEX IF NOT EXISTS bookmarked_searches_creator_id_created_time_idx + ON public.bookmarked_searches (creator_id, created_time DESC); + +CREATE INDEX IF NOT EXISTS bookmarked_searches_creator_id_idx + ON public.bookmarked_searches (creator_id); + +CREATE INDEX IF NOT EXISTS bookmarked_searches_search_name_idx + ON public.bookmarked_searches (search_name); diff --git a/backend/supabase/migration.sql b/backend/supabase/migration.sql index 609bd71b..0a99a135 100644 --- a/backend/supabase/migration.sql +++ b/backend/supabase/migration.sql @@ -23,4 +23,5 @@ BEGIN; \i backend/supabase/migrations/20250910_bio_to_jsonb.sql \i backend/supabase/migrations/20250910_add_bio_text.sql \i backend/supabase/migrations/20250910_pg_trgm.sql +\i backend/supabase/bookmarked_searches.sql COMMIT;