-- Master Database Schema CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; CREATE TABLE IF NOT EXISTS communities ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), name TEXT NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS users ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), username TEXT UNIQUE NOT NULL, display_name TEXT, created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS webauthn_credentials ( id BYTEA PRIMARY KEY, user_id UUID REFERENCES users(id) ON DELETE CASCADE, public_key BYTEA NOT NULL, attestation_type TEXT NOT NULL, aaguid UUID NOT NULL, sign_count UINT32 NOT NULL DEFAULT 0, created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS community_members ( community_id UUID REFERENCES communities(id) ON DELETE CASCADE, user_id UUID REFERENCES users(id) ON DELETE CASCADE, role TEXT NOT NULL DEFAULT 'admin', -- 'owner', 'admin' PRIMARY KEY (community_id, user_id) ); CREATE TABLE IF NOT EXISTS storage_nodes ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), community_id UUID REFERENCES communities(id) ON DELETE CASCADE, address TEXT NOT NULL, -- Internal cluster address or URL status TEXT DEFAULT 'active', created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP );