25 lines
928 B
SQL
25 lines
928 B
SQL
CREATE TABLE IF NOT EXISTS custom_world_profiles (
|
|
user_id TEXT NOT NULL,
|
|
profile_id TEXT NOT NULL,
|
|
payload_json JSONB NOT NULL,
|
|
visibility TEXT NOT NULL DEFAULT 'draft',
|
|
published_at TEXT,
|
|
author_display_name TEXT NOT NULL DEFAULT '玩家',
|
|
world_name TEXT NOT NULL DEFAULT '',
|
|
subtitle TEXT NOT NULL DEFAULT '',
|
|
summary_text TEXT NOT NULL DEFAULT '',
|
|
cover_image_src TEXT,
|
|
theme_mode TEXT NOT NULL DEFAULT 'mythic',
|
|
playable_npc_count INTEGER NOT NULL DEFAULT 0,
|
|
landmark_count INTEGER NOT NULL DEFAULT 0,
|
|
updated_at TEXT NOT NULL,
|
|
PRIMARY KEY (user_id, profile_id),
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS custom_world_profiles_user_updated_idx
|
|
ON custom_world_profiles (user_id, updated_at DESC);
|
|
|
|
CREATE INDEX IF NOT EXISTS custom_world_profiles_published_idx
|
|
ON custom_world_profiles (visibility, published_at DESC, updated_at DESC);
|