Files
Compass/backend/supabase/lovers.sql
2025-08-27 21:30:05 +02:00

80 lines
2.3 KiB
SQL

-- This file is autogenerated from regen-schema.ts
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'lover_visibility') THEN
CREATE TYPE lover_visibility AS ENUM ('public', 'member');
END IF;
END$$;
CREATE TABLE IF NOT EXISTS lovers (
age INTEGER DEFAULT 18 NOT NULL,
bio JSON,
born_in_location TEXT,
city TEXT NOT NULL,
city_latitude NUMERIC(9, 6),
city_longitude NUMERIC(9, 6),
comments_enabled BOOLEAN DEFAULT TRUE NOT NULL,
company TEXT,
country TEXT,
created_time TIMESTAMPTZ DEFAULT now() NOT NULL,
drinks_per_month INTEGER,
education_level TEXT,
ethnicity TEXT[],
gender TEXT NOT NULL,
geodb_city_id TEXT,
has_kids INTEGER,
height_in_inches INTEGER,
id BIGINT GENERATED ALWAYS AS IDENTITY NOT NULL,
is_smoker BOOLEAN,
is_vegetarian_or_vegan BOOLEAN,
last_online_time TIMESTAMPTZ DEFAULT now() NOT NULL,
looking_for_matches BOOLEAN DEFAULT TRUE NOT NULL,
messaging_status TEXT DEFAULT 'open'::TEXT NOT NULL,
occupation TEXT,
occupation_title TEXT,
photo_urls TEXT[],
pinned_url TEXT,
political_beliefs TEXT[],
pref_age_max INTEGER DEFAULT 100 NOT NULL,
pref_age_min INTEGER DEFAULT 18 NOT NULL,
pref_gender TEXT[] NOT NULL,
pref_relation_styles TEXT[] NOT NULL,
referred_by_username TEXT,
region_code TEXT,
religious_belief_strength INTEGER,
religious_beliefs TEXT,
twitter TEXT,
university TEXT,
user_id TEXT NOT NULL,
visibility lover_visibility DEFAULT 'member'::lover_visibility NOT NULL,
wants_kids_strength INTEGER DEFAULT 0 NOT NULL,
website TEXT,
CONSTRAINT lovers_pkey PRIMARY KEY (id)
);
-- Row Level Security
ALTER TABLE lovers ENABLE ROW LEVEL SECURITY;
-- Policies
DROP POLICY IF EXISTS "public read" ON lovers;
CREATE POLICY "public read" ON lovers
FOR SELECT
USING (true);
DROP POLICY IF EXISTS "self update" ON lovers;
CREATE POLICY "self update" ON lovers
FOR UPDATE
WITH CHECK ((user_id = firebase_uid()));
-- Indexes
DROP INDEX IF EXISTS lovers_user_id_idx;
CREATE INDEX lovers_user_id_idx ON public.lovers USING btree (user_id);
DROP INDEX IF EXISTS unique_user_id;
CREATE UNIQUE INDEX unique_user_id ON public.lovers USING btree (user_id);