Aventuras/src-tauri/migrations/016_character_vault.sql
2026-01-15 17:02:56 -06:00

41 lines
1.3 KiB
SQL

-- Character Vault: Global character library for reusable character templates
-- Characters are copied to stories (no sync back)
CREATE TABLE IF NOT EXISTS character_vault (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
description TEXT,
-- Character type: protagonist or supporting
character_type TEXT NOT NULL DEFAULT 'supporting' CHECK(character_type IN ('protagonist', 'supporting')),
-- For protagonists: background and motivation (used in wizard)
background TEXT,
motivation TEXT,
-- For supporting: role and relationship template
role TEXT,
relationship_template TEXT,
-- Common fields (mirroring Character interface)
traits TEXT NOT NULL DEFAULT '[]',
visual_descriptors TEXT NOT NULL DEFAULT '[]',
portrait TEXT,
-- Organization
tags TEXT NOT NULL DEFAULT '[]',
favorite INTEGER NOT NULL DEFAULT 0,
-- Metadata
source TEXT,
original_story_id TEXT,
metadata TEXT,
created_at INTEGER NOT NULL,
updated_at INTEGER NOT NULL
);
-- Index for common queries
CREATE INDEX IF NOT EXISTS idx_character_vault_type ON character_vault(character_type);
CREATE INDEX IF NOT EXISTS idx_character_vault_name ON character_vault(name);
CREATE INDEX IF NOT EXISTS idx_character_vault_favorite ON character_vault(favorite);