Spaces:
Sleeping
Sleeping
File size: 1,245 Bytes
1fff71f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
-- Database Schema for Profile and Contact Management UI
-- Feature: 012-profile-contact-ui
-- Version: 1.0.0
-- User profiles table
CREATE TABLE IF NOT EXISTS user_profiles (
user_id VARCHAR(255) PRIMARY KEY NOT NULL,
display_name VARCHAR(255) NOT NULL,
profile_picture_url TEXT,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
last_login TIMESTAMP NOT NULL,
session_id VARCHAR(255) NOT NULL UNIQUE
);
-- Contact sessions table
CREATE TABLE IF NOT EXISTS contact_sessions (
session_id VARCHAR(255) PRIMARY KEY NOT NULL,
user_id VARCHAR(255) NOT NULL,
contact_name VARCHAR(255) NOT NULL,
contact_description TEXT CHECK(LENGTH(contact_description) <= 500),
is_reference BOOLEAN NOT NULL DEFAULT 0,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
last_interaction TIMESTAMP NOT NULL,
FOREIGN KEY (user_id) REFERENCES user_profiles(user_id) ON DELETE CASCADE
);
-- Indexes for performance
CREATE INDEX IF NOT EXISTS idx_contact_sessions_user ON contact_sessions(user_id);
CREATE INDEX IF NOT EXISTS idx_contact_sessions_sort ON contact_sessions(user_id, last_interaction DESC);
CREATE INDEX IF NOT EXISTS idx_contact_sessions_reference ON contact_sessions(is_reference);
|