matching_app/0001_init.sql.bck
2025-05-02 15:12:18 +07:00

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()
);