16 lines
884 B
SQL
16 lines
884 B
SQL
-- Runtime state is generic JSON so future widget and relation renderers can
|
|||
|
|
-- persist interaction-specific state without adding a column per widget kind.
|
||
|
|
ALTER TABLE osint.playthrough_widget_state
|
||
|
|
ADD COLUMN config JSONB NOT NULL DEFAULT '{}'::jsonb;
|
||
|
|
|
||
|
|
CREATE TABLE osint.playthrough_widget_relation_state (
|
||
|
|
playthrough_id TEXT NOT NULL REFERENCES osint.playthroughs(id) ON DELETE CASCADE,
|
||
|
|
relation_id TEXT NOT NULL REFERENCES osint.widget_relations(id) ON DELETE CASCADE,
|
||
|
|
config JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||
|
|
PRIMARY KEY (playthrough_id, relation_id)
|
||
|
|
);
|
||
|
|
|
||
|
|
COMMENT ON COLUMN osint.playthrough_widget_state.config IS 'Player-owned runtime and metadata overrides for any authored widget type';
|
||
|
|
COMMENT ON TABLE osint.playthrough_widget_relation_state IS 'Player-owned layout/state overrides for authored widget relations';
|