-- Storage Node Schema (Per Community/Node)
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

CREATE TABLE IF NOT EXISTS encrypted_logs (
    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
    log_type TEXT NOT NULL, -- 'chat', 'kill', 'admin', 'ban'
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
    
    -- E2EE Blob
    encrypted_payload BYTEA NOT NULL,
    
    -- Searchable Metadata (Blind Indexing)
    -- HMAC-SHA256 hashes of identifiers (e.g., SteamID, PlayerName)
    blind_index_hash TEXT, 
    
    -- Plaintext Metadata (Non-sensitive)
    server_id TEXT NOT NULL,
    session_id TEXT
);

CREATE INDEX idx_logs_created_at ON encrypted_logs(created_at);
CREATE INDEX idx_logs_blind_hash ON encrypted_logs(blind_index_hash);

CREATE TABLE IF NOT EXISTS players (
    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
    -- Blind Index Hash of the SteamID/GUID for searching
    identity_hash TEXT UNIQUE NOT NULL, 
    
    -- E2EE encrypted player profile (names, notes, etc.)
    encrypted_profile BYTEA NOT NULL,
    
    last_seen TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX idx_players_identity_hash ON players(identity_hash);
