-- Create lawyers table
CREATE TABLE lawyers (
tenant_id UUID,
lawyer_id UUID,
education TEXT,
experience TEXT,
PRIMARY KEY (tenant_id, lawyer_id),
FOREIGN KEY (tenant_id, lawyer_id) REFERENCES users.tenant_users(tenant_id, user_id)
);
-- Create clients table
CREATE TABLE clients (
tenant_id UUID,
client_id UUID,
personal_info JSONB,
PRIMARY KEY (tenant_id, client_id),
FOREIGN KEY (tenant_id, client_id) REFERENCES users.tenant_users(tenant_id, user_id)
);
-- Create cases table
CREATE TABLE cases (
tenant_id UUID,
case_id UUID DEFAULT gen_random_uuid(),
lawyer_id UUID,
client_id UUID,
case_description TEXT,
status VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
vector_embedding VECTOR(768), -- Adjust the dimensions as needed
PRIMARY KEY (tenant_id, case_id),
FOREIGN KEY (tenant_id, lawyer_id) REFERENCES lawyers(tenant_id, lawyer_id),
FOREIGN KEY (tenant_id, client_id) REFERENCES clients(tenant_id, client_id)
);
-- Create contracts table
CREATE TABLE contracts (
tenant_id UUID,
contract_id UUID DEFAULT gen_random_uuid(),
case_id UUID,
contract_content TEXT,
created_by UUID,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
vector_embedding VECTOR(768), -- Adjust the dimensions as needed
PRIMARY KEY (tenant_id, contract_id),
FOREIGN KEY (tenant_id, case_id) REFERENCES cases(tenant_id, case_id),
FOREIGN KEY (tenant_id, created_by) REFERENCES lawyers(tenant_id, lawyer_id)
);
-- Create contract_status table
CREATE TABLE contract_status (
tenant_id UUID,
status_id UUID DEFAULT gen_random_uuid(),
contract_id UUID,
status VARCHAR(50),
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (tenant_id, status_id),
FOREIGN KEY (tenant_id, contract_id) REFERENCES contracts(tenant_id, contract_id)
);