60 lines
1.7 KiB
Plaintext
60 lines
1.7 KiB
Plaintext
-- Migration: Initial schema setup
|
|
|
|
CREATE TABLE profiles (
|
|
id UUID PRIMARY KEY,
|
|
full_name TEXT NOT NULL,
|
|
date_of_birth DATE NOT NULL,
|
|
gender TEXT,
|
|
preferred_gender TEXT,
|
|
phone_number TEXT,
|
|
email TEXT,
|
|
facebook_link TEXT,
|
|
photo_reference TEXT,
|
|
location TEXT,
|
|
team TEXT,
|
|
hobbies JSONB,
|
|
things_not_tried JSONB,
|
|
hopes_for_partner TEXT,
|
|
dealbreakers TEXT,
|
|
message_to_partner TEXT,
|
|
zodiac_sign TEXT,
|
|
access_code TEXT,
|
|
personal_link TEXT,
|
|
accepted_terms BOOLEAN DEFAULT FALSE,
|
|
registration_timestamp TIMESTAMP WITH TIME ZONE NOT NULL,
|
|
status TEXT,
|
|
is_lucky_winner BOOLEAN DEFAULT FALSE,
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
);
|
|
|
|
CREATE TABLE match_outcomes (
|
|
id UUID PRIMARY KEY,
|
|
profile_id UUID REFERENCES profiles(id),
|
|
potential_match_profile_ids JSONB,
|
|
match_scores JSONB,
|
|
status TEXT,
|
|
selected_profile_id UUID,
|
|
generation_timestamp TIMESTAMP WITH TIME ZONE NOT NULL,
|
|
accessed_timestamp TIMESTAMP WITH TIME ZONE,
|
|
selection_timestamp TIMESTAMP WITH TIME ZONE,
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
);
|
|
|
|
CREATE TABLE gifts (
|
|
id UUID PRIMARY KEY,
|
|
name TEXT NOT NULL,
|
|
description TEXT,
|
|
quantity INT DEFAULT 0,
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
);
|
|
|
|
CREATE TABLE gift_allocations (
|
|
id UUID PRIMARY KEY,
|
|
gift_id UUID REFERENCES gifts(id),
|
|
match_outcome_id UUID REFERENCES match_outcomes(id),
|
|
allocated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
);
|