mirror of
https://github.com/CompassConnections/Compass.git
synced 2026-01-20 03:38:51 -05:00
80 lines
2.3 KiB
SQL
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);
|