Spaces:
Runtime error
Runtime error
-- Enable PostGIS (run once) | |
CREATE EXTENSION IF NOT EXISTS postgis; | |
-- Create technicians table | |
CREATE TABLE IF NOT EXISTS technicians ( | |
id SERIAL PRIMARY KEY, | |
name VARCHAR(100) NOT NULL, | |
qualifications TEXT[] NOT NULL, | |
location GEOGRAPHY(POINT) NOT NULL, | |
availability VARCHAR(20) DEFAULT 'available', | |
rating FLOAT DEFAULT 5.0, | |
contact VARCHAR(50) NOT NULL | |
); | |
-- Create index for geospatial queries | |
CREATE INDEX IF NOT EXISTS technicians_location_idx ON technicians USING GIST (location); | |
-- Insert sample technician | |
INSERT INTO technicians (name, qualifications, location, availability, rating, contact) | |
VALUES ( | |
'John Doe', | |
ARRAY['plumbing', 'electrical'], | |
ST_SetSRID(ST_MakePoint(36.8219, -1.2921), 4326), | |
'available', | |
4.8, | |
'whatsapp:+254123456789' | |
); | |
-- Create users table for session tracking | |
CREATE TABLE IF NOT EXISTS users ( | |
number VARCHAR(50) PRIMARY KEY, | |
last_message TEXT, | |
state VARCHAR(50), | |
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP | |
); | |
-- Create requests table for feedback collection | |
CREATE TABLE IF NOT EXISTS requests ( | |
id SERIAL PRIMARY KEY, | |
user_number VARCHAR(50), | |
technician_id INT, | |
service_type VARCHAR(50), | |
status VARCHAR(20), | |
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | |
FOREIGN KEY (technician_id) REFERENCES technicians(id) | |
); | |
-- Check if technicians exist | |
SELECT * FROM technicians; | |
-- If empty, insert sample data: | |
INSERT INTO technicians (name, qualifications, location, contact) | |
VALUES ( | |
'John Doe', | |
ARRAY['hvac', 'electrical'], | |
ST_SetSRID(ST_MakePoint(36.8219, -1.2921), 4326), -- Nairobi coords | |
'+254712345678' | |
); | |
INSERT INTO technicians (name, qualifications, location, contact) VALUES | |
('AC Specialist', ARRAY['hvac'], ST_MakePoint(36.81, -1.29), '+254700000001'), | |
('Plumber Ltd', ARRAY['plumbing'], ST_MakePoint(36.82, -1.30), '+254700000002'); | |