Initial import with GitLab CI/CD and registry deploy flow
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
-- Core MVP schema (SQLite)
|
||||
|
||||
CREATE TABLE IF NOT EXISTS auth_users (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id TEXT NOT NULL UNIQUE,
|
||||
username TEXT NOT NULL UNIQUE,
|
||||
password TEXT NOT NULL,
|
||||
full_name TEXT NOT NULL,
|
||||
role TEXT NOT NULL,
|
||||
created_at TEXT NOT NULL
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS ix_auth_users_user_id ON auth_users (user_id);
|
||||
CREATE INDEX IF NOT EXISTS ix_auth_users_username ON auth_users (username);
|
||||
CREATE INDEX IF NOT EXISTS ix_auth_users_role ON auth_users (role);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS customers (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
customer_id TEXT NOT NULL UNIQUE,
|
||||
display_name TEXT NOT NULL,
|
||||
phones_json TEXT NOT NULL DEFAULT '[]',
|
||||
preferred_phone TEXT,
|
||||
tags_json TEXT NOT NULL DEFAULT '[]',
|
||||
created_at TEXT NOT NULL
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS ix_customers_customer_id ON customers (customer_id);
|
||||
CREATE INDEX IF NOT EXISTS ix_customers_display_name ON customers (display_name);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS interactions (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
interaction_id TEXT NOT NULL UNIQUE,
|
||||
channel TEXT NOT NULL,
|
||||
subject TEXT NOT NULL,
|
||||
customer_id TEXT,
|
||||
queue_id TEXT,
|
||||
priority INTEGER NOT NULL DEFAULT 3,
|
||||
status TEXT NOT NULL,
|
||||
assigned_to TEXT,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS ix_interactions_interaction_id ON interactions (interaction_id);
|
||||
CREATE INDEX IF NOT EXISTS ix_interactions_status ON interactions (status);
|
||||
CREATE INDEX IF NOT EXISTS ix_interactions_queue_id ON interactions (queue_id);
|
||||
CREATE INDEX IF NOT EXISTS ix_interactions_assigned_to ON interactions (assigned_to);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS interaction_timelines (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
interaction_id TEXT NOT NULL,
|
||||
timestamp TEXT NOT NULL,
|
||||
action TEXT NOT NULL,
|
||||
metadata_json TEXT NOT NULL DEFAULT '{}'
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS ix_interaction_timelines_interaction_id ON interaction_timelines (interaction_id);
|
||||
CREATE INDEX IF NOT EXISTS ix_interaction_timelines_timestamp ON interaction_timelines (timestamp);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS queues (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
queue_id TEXT NOT NULL UNIQUE,
|
||||
name TEXT NOT NULL,
|
||||
description TEXT NOT NULL DEFAULT '',
|
||||
rules_json TEXT NOT NULL DEFAULT '[]',
|
||||
created_at TEXT NOT NULL
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS ix_queues_queue_id ON queues (queue_id);
|
||||
CREATE INDEX IF NOT EXISTS ix_queues_name ON queues (name);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS routing_counters (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
channel TEXT NOT NULL UNIQUE,
|
||||
counter INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS ix_routing_counters_channel ON routing_counters (channel);
|
||||
Reference in New Issue
Block a user