rspace-online/modules/splat/db/schema.sql

25 lines
881 B
SQL

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