Files
call-center/migrations/sql/0007_ivr_postgres.sql
T

52 lines
2.3 KiB
SQL

CREATE TABLE IF NOT EXISTS ivr_flows (
id SERIAL PRIMARY KEY,
flow_id TEXT NOT NULL UNIQUE,
name TEXT NOT NULL,
description TEXT NOT NULL DEFAULT '',
channel TEXT NOT NULL,
queue_id TEXT NOT NULL,
version INTEGER NOT NULL DEFAULT 1,
is_active BOOLEAN NOT NULL DEFAULT TRUE,
entry_node_id TEXT NOT NULL,
flow_json TEXT NOT NULL,
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS ix_ivr_flows_flow_id ON ivr_flows (flow_id);
CREATE INDEX IF NOT EXISTS ix_ivr_flows_name ON ivr_flows (name);
CREATE INDEX IF NOT EXISTS ix_ivr_flows_channel ON ivr_flows (channel);
CREATE INDEX IF NOT EXISTS ix_ivr_flows_queue_id ON ivr_flows (queue_id);
CREATE INDEX IF NOT EXISTS ix_ivr_flows_is_active ON ivr_flows (is_active);
CREATE INDEX IF NOT EXISTS ix_ivr_flows_created_at ON ivr_flows (created_at);
CREATE INDEX IF NOT EXISTS ix_ivr_flows_updated_at ON ivr_flows (updated_at);
CREATE TABLE IF NOT EXISTS ivr_sessions (
id SERIAL PRIMARY KEY,
session_id TEXT NOT NULL UNIQUE,
call_id TEXT NOT NULL,
interaction_id TEXT NULL,
flow_id TEXT NOT NULL,
queue_id TEXT NOT NULL,
current_node_id TEXT NOT NULL,
entered_digits_json TEXT NOT NULL DEFAULT '[]',
status TEXT NOT NULL,
outcome_code TEXT NULL,
resolved_queue_id TEXT NULL,
completed_at TEXT NULL,
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS ix_ivr_sessions_session_id ON ivr_sessions (session_id);
CREATE INDEX IF NOT EXISTS ix_ivr_sessions_call_id ON ivr_sessions (call_id);
CREATE INDEX IF NOT EXISTS ix_ivr_sessions_interaction_id ON ivr_sessions (interaction_id);
CREATE INDEX IF NOT EXISTS ix_ivr_sessions_flow_id ON ivr_sessions (flow_id);
CREATE INDEX IF NOT EXISTS ix_ivr_sessions_queue_id ON ivr_sessions (queue_id);
CREATE INDEX IF NOT EXISTS ix_ivr_sessions_status ON ivr_sessions (status);
CREATE INDEX IF NOT EXISTS ix_ivr_sessions_outcome_code ON ivr_sessions (outcome_code);
CREATE INDEX IF NOT EXISTS ix_ivr_sessions_resolved_queue_id ON ivr_sessions (resolved_queue_id);
CREATE INDEX IF NOT EXISTS ix_ivr_sessions_completed_at ON ivr_sessions (completed_at);
CREATE INDEX IF NOT EXISTS ix_ivr_sessions_created_at ON ivr_sessions (created_at);
CREATE INDEX IF NOT EXISTS ix_ivr_sessions_updated_at ON ivr_sessions (updated_at);