CREATE TABLE IF NOT EXISTS rsplat.splats ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), slug TEXT NOT NULL UNIQUE, title TEXT NOT NULL, description TEXT, file_path TEXT NOT NULL, file_format TEXT NOT NULL DEFAULT 'ply', file_size_bytes BIGINT DEFAULT 0, tags TEXT[] DEFAULT '{}', space_slug TEXT NOT NULL DEFAULT 'demo', contributor_id TEXT, contributor_name TEXT, source TEXT DEFAULT 'upload', status TEXT NOT NULL DEFAULT 'published', view_count INTEGER DEFAULT 0, payment_tx TEXT, payment_network TEXT, created_at TIMESTAMPTZ DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS idx_splats_space ON rsplat.splats (space_slug); CREATE INDEX IF NOT EXISTS idx_splats_slug ON rsplat.splats (slug); CREATE INDEX IF NOT EXISTS idx_splats_status ON rsplat.splats (status); CREATE INDEX IF NOT EXISTS idx_splats_created ON rsplat.splats (created_at DESC);