Spaces:
Runtime error
Runtime error
| -- Customer Agent Database Schema | |
| -- Users table | |
| CREATE TABLE users ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| email VARCHAR UNIQUE NOT NULL, | |
| name VARCHAR, | |
| hashed_password VARCHAR NOT NULL, | |
| is_active BOOLEAN DEFAULT 1, | |
| created_at DATETIME DEFAULT CURRENT_TIMESTAMP | |
| ); | |
| -- Websites table | |
| CREATE TABLE websites ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| url VARCHAR NOT NULL, | |
| name VARCHAR NOT NULL, | |
| industry VARCHAR, | |
| tone VARCHAR DEFAULT 'friendly', | |
| is_verified BOOLEAN DEFAULT 0, | |
| owner_id INTEGER NOT NULL, | |
| widget_config JSON, | |
| created_at DATETIME DEFAULT CURRENT_TIMESTAMP, | |
| last_scraped DATETIME, | |
| FOREIGN KEY (owner_id) REFERENCES users(id) | |
| ); | |
| -- Website content table | |
| CREATE TABLE website_content ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| website_id INTEGER NOT NULL, | |
| page_url VARCHAR NOT NULL, | |
| content TEXT NOT NULL, | |
| embedding TEXT, | |
| created_at DATETIME DEFAULT CURRENT_TIMESTAMP, | |
| FOREIGN KEY (website_id) REFERENCES websites(id) | |
| ); | |
| -- Chat sessions table | |
| CREATE TABLE chat_sessions ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| session_id VARCHAR(255) UNIQUE NOT NULL, | |
| website_id INTEGER NOT NULL, | |
| ip_address VARCHAR(50), | |
| user_agent TEXT, | |
| visitor_name VARCHAR(255), | |
| visitor_email VARCHAR(255), | |
| country VARCHAR(100), | |
| city VARCHAR(100), | |
| messages JSON, | |
| message_count INTEGER DEFAULT 0, | |
| language_detected VARCHAR(10), | |
| industry VARCHAR(50), | |
| first_query TEXT, | |
| last_query TEXT, | |
| is_active BOOLEAN DEFAULT 1, | |
| ended_reason VARCHAR(100), | |
| avg_response_time INTEGER, | |
| satisfaction_rating INTEGER, | |
| started_at DATETIME DEFAULT CURRENT_TIMESTAMP, | |
| last_activity_at DATETIME DEFAULT CURRENT_TIMESTAMP, | |
| ended_at DATETIME, | |
| FOREIGN KEY (website_id) REFERENCES websites(id) | |
| ); | |
| -- Chat messages table | |
| CREATE TABLE chat_messages ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| session_id INTEGER NOT NULL, | |
| message TEXT NOT NULL, | |
| is_from_visitor BOOLEAN DEFAULT 1, | |
| is_from_ai BOOLEAN DEFAULT 0, | |
| sender_name VARCHAR, | |
| analysis JSON, | |
| confidence_score FLOAT, | |
| escalated BOOLEAN DEFAULT 0, | |
| created_at DATETIME DEFAULT CURRENT_TIMESTAMP, | |
| FOREIGN KEY (session_id) REFERENCES chat_sessions(id) | |
| ); | |
| -- User settings table | |
| CREATE TABLE user_settings ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| user_id INTEGER UNIQUE NOT NULL, | |
| business_name VARCHAR(255), | |
| business_email VARCHAR(255), | |
| ai_tone VARCHAR(50) DEFAULT 'friendly', | |
| notifications BOOLEAN DEFAULT 1, | |
| auto_response BOOLEAN DEFAULT 1 | |
| ); | |
| -- FAQ table | |
| CREATE TABLE faqs ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| website_id INTEGER NOT NULL, | |
| question TEXT NOT NULL, | |
| answer TEXT NOT NULL, | |
| created_at DATETIME DEFAULT CURRENT_TIMESTAMP, | |
| FOREIGN KEY (website_id) REFERENCES websites(id) | |
| ); | |
| -- Unanswered questions table | |
| CREATE TABLE unanswered_questions ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| website_id INTEGER NOT NULL, | |
| question TEXT NOT NULL, | |
| count INTEGER DEFAULT 1, | |
| created_at DATETIME DEFAULT CURRENT_TIMESTAMP, | |
| FOREIGN KEY (website_id) REFERENCES websites(id) | |
| ); | |
| -- Contact requests table | |
| CREATE TABLE contact_requests ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| website_id INTEGER NOT NULL, | |
| visitor_name VARCHAR(255), | |
| visitor_email VARCHAR(255), | |
| message TEXT, | |
| created_at DATETIME DEFAULT CURRENT_TIMESTAMP, | |
| FOREIGN KEY (website_id) REFERENCES websites(id) | |
| ); | |
| -- User query limits table | |
| CREATE TABLE user_query_limits ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| website_id INTEGER NOT NULL, | |
| query_count INTEGER DEFAULT 0, | |
| reset_date DATETIME, | |
| FOREIGN KEY (website_id) REFERENCES websites(id) | |
| ); | |
| -- Indexes for performance | |
| CREATE INDEX idx_users_email ON users(email); | |
| CREATE INDEX idx_websites_owner ON websites(owner_id); | |
| CREATE INDEX idx_website_content_website ON website_content(website_id); | |
| CREATE INDEX idx_chat_sessions_website ON chat_sessions(website_id); | |
| CREATE INDEX idx_chat_sessions_ip ON chat_sessions(ip_address); | |
| CREATE INDEX idx_chat_sessions_active ON chat_sessions(is_active); | |
| CREATE INDEX idx_chat_sessions_started ON chat_sessions(started_at); | |
| CREATE INDEX idx_chat_messages_session ON chat_messages(session_id); | |
| CREATE INDEX idx_user_settings_user ON user_settings(user_id); | |
| CREATE INDEX idx_faqs_website ON faqs(website_id); | |
| CREATE INDEX idx_unanswered_questions_website ON unanswered_questions(website_id); | |
| CREATE INDEX idx_contact_requests_website ON contact_requests(website_id); | |
| CREATE INDEX idx_user_query_limits_website ON user_query_limits(website_id); | |