-- Create leads table
CREATE TABLE leads (
tenant_id UUID,
lead_id UUID DEFAULT gen_random_uuid(),
user_id UUID,
lead_name VARCHAR(100) NOT NULL,
lead_email VARCHAR(100) NOT NULL,
lead_phone VARCHAR(20),
lead_status VARCHAR(50) NOT NULL,
lead_quality VARCHAR(50),
deal_size DECIMAL(10, 2),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (tenant_id, lead_id),
FOREIGN KEY (tenant_id, user_id) REFERENCES tenant_users(tenant_id, user_id)
);
-- Create lead_notes table
CREATE TABLE lead_notes (
tenant_id UUID,
note_id UUID DEFAULT gen_random_uuid(),
lead_id UUID,
user_id UUID,
note_content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (tenant_id, note_id),
FOREIGN KEY (tenant_id, lead_id) REFERENCES leads(tenant_id, lead_id),
FOREIGN KEY (tenant_id, user_id) REFERENCES tenant_users(tenant_id, user_id)
);
-- Create lead_conversations table with AI-generated summaries and vector embeddings
CREATE TABLE lead_conversations (
tenant_id UUID,
conversation_id UUID DEFAULT gen_random_uuid(),
lead_id UUID,
user_id UUID,
conversation_content TEXT NOT NULL,
vector_embedding VECTOR(768), -- Adjust the dimensions as needed
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (tenant_id, conversation_id),
FOREIGN KEY (tenant_id, lead_id) REFERENCES leads(tenant_id, lead_id),
FOREIGN KEY (tenant_id, user_id) REFERENCES tenant_users(tenant_id, user_id)
);
-- Create lead_status_history table
CREATE TABLE lead_status_history (
tenant_id UUID,
history_id UUID DEFAULT gen_random_uuid(),
lead_id UUID,
old_status VARCHAR(50) NOT NULL,
new_status VARCHAR(50) NOT NULL,
changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
changed_by UUID,
PRIMARY KEY (tenant_id, history_id),
FOREIGN KEY (tenant_id, lead_id) REFERENCES leads(tenant_id, lead_id),
FOREIGN KEY (tenant_id, changed_by) REFERENCES tenant_users(tenant_id, user_id)
);
-- Create global_companies table
CREATE TABLE global_companies (
company_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
company_name VARCHAR(100) NOT NULL,
industry VARCHAR(100),
country VARCHAR(50),
revenue DECIMAL(15, 2),
employees INTEGER,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);