| |
| |
| |
| |
|
|
| |
| CREATE TABLE IF NOT EXISTS scenarios ( |
| id VARCHAR PRIMARY KEY, |
| name VARCHAR NOT NULL, |
| version VARCHAR NOT NULL, |
| description TEXT |
| ); |
|
|
| |
| CREATE TABLE IF NOT EXISTS catalog_intents ( |
| scenario_id VARCHAR NOT NULL, |
| intent_id VARCHAR NOT NULL, |
| intent_name VARCHAR NOT NULL, |
| L1_id VARCHAR NOT NULL, |
| L1_name VARCHAR NOT NULL, |
| L2_id VARCHAR NOT NULL, |
| L2_name VARCHAR NOT NULL, |
| inference_type VARCHAR NOT NULL, |
| features_json VARCHAR, |
| PRIMARY KEY (scenario_id, intent_id) |
| ); |
|
|
| |
| CREATE TABLE IF NOT EXISTS catalog_actions ( |
| scenario_id VARCHAR NOT NULL, |
| action_id VARCHAR NOT NULL, |
| action_name VARCHAR NOT NULL, |
| intents_json VARCHAR NOT NULL, |
| condition VARCHAR, |
| channel VARCHAR NOT NULL, |
| message VARCHAR, |
| PRIMARY KEY (scenario_id, action_id) |
| ); |
|
|
| |
| CREATE TABLE IF NOT EXISTS catalog_behaviors ( |
| scenario_id VARCHAR NOT NULL, |
| behavior_id VARCHAR NOT NULL, |
| step INTEGER NOT NULL, |
| behavior_name VARCHAR NOT NULL, |
| event_type VARCHAR NOT NULL, |
| entity VARCHAR NOT NULL, |
| PRIMARY KEY (scenario_id, behavior_id) |
| ); |
|
|
| |
| |
| |
|
|
| |
| CREATE SEQUENCE IF NOT EXISTS seq_sessions; |
| CREATE TABLE IF NOT EXISTS sessions ( |
| id VARCHAR PRIMARY KEY, |
| scenario_id VARCHAR NOT NULL, |
| created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
| last_active_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
| stage VARCHAR DEFAULT 'initial' |
| ); |
|
|
| |
| CREATE SEQUENCE IF NOT EXISTS seq_survey_answers; |
| CREATE TABLE IF NOT EXISTS survey_answers ( |
| id BIGINT DEFAULT nextval('seq_survey_answers') PRIMARY KEY, |
| session_id VARCHAR NOT NULL, |
| question_id VARCHAR NOT NULL, |
| answer_code VARCHAR NOT NULL, |
| submitted_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
| ); |
|
|
| |
| CREATE SEQUENCE IF NOT EXISTS seq_event_log; |
| CREATE TABLE IF NOT EXISTS event_log ( |
| id BIGINT DEFAULT nextval('seq_event_log') PRIMARY KEY, |
| session_id VARCHAR NOT NULL, |
| scenario_id VARCHAR NOT NULL, |
| step INTEGER, |
| behavior_id VARCHAR, |
| event_type VARCHAR NOT NULL, |
| entity VARCHAR NOT NULL, |
| occurred_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
| ); |
|
|
| |
| |
| |
| |
| |
| CREATE SEQUENCE IF NOT EXISTS seq_intent_scores; |
| CREATE TABLE IF NOT EXISTS intent_scores ( |
| id BIGINT DEFAULT nextval('seq_intent_scores') PRIMARY KEY, |
| session_id VARCHAR NOT NULL, |
| stage VARCHAR NOT NULL, |
| intent_id VARCHAR NOT NULL, |
| baseline_score DOUBLE NOT NULL, |
| final_score DOUBLE NOT NULL, |
| delta_score DOUBLE DEFAULT 0.0, |
| baseline_rank INTEGER, |
| rank INTEGER, |
| rank_change INTEGER DEFAULT 0, |
| inference_type VARCHAR NOT NULL, |
| computed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
| ); |
|
|
| |
| CREATE SEQUENCE IF NOT EXISTS seq_customer_contexts; |
| CREATE TABLE IF NOT EXISTS customer_contexts ( |
| id BIGINT DEFAULT nextval('seq_customer_contexts') PRIMARY KEY, |
| session_id VARCHAR NOT NULL, |
| scenario_id VARCHAR NOT NULL, |
| stage VARCHAR NOT NULL, |
| context_json VARCHAR NOT NULL, |
| created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
| ); |
|
|
| |
| |
| |
| CREATE INDEX IF NOT EXISTS idx_event_log_session ON event_log (session_id); |
| CREATE INDEX IF NOT EXISTS idx_intent_scores_session ON intent_scores (session_id, stage); |
| CREATE INDEX IF NOT EXISTS idx_customer_contexts_session ON customer_contexts (session_id, stage); |
|
|