Spaces:
Sleeping
Sleeping
| -- Create scm_tasks table for task tracking under trans schema | |
| -- Run this script to set up the database schema | |
| -- Create trans schema | |
| CREATE SCHEMA IF NOT EXISTS trans; | |
| -- Create table | |
| CREATE TABLE IF NOT EXISTS trans.scm_tasks ( | |
| id UUID PRIMARY KEY DEFAULT gen_random_uuid(), | |
| merchant_id UUID NOT NULL, | |
| assigned_to UUID NOT NULL, | |
| title TEXT NOT NULL, | |
| description TEXT, | |
| status TEXT DEFAULT 'not_started', | |
| latitude DOUBLE PRECISION, | |
| longitude DOUBLE PRECISION, | |
| address TEXT, | |
| scheduled_at TIMESTAMP, | |
| started_at BIGINT, | |
| completed_at BIGINT, | |
| created_at TIMESTAMP DEFAULT now(), | |
| updated_at TIMESTAMP DEFAULT now(), | |
| CONSTRAINT chk_status CHECK ( | |
| status IN ('not_started', 'in_progress', 'completed') | |
| ) | |
| ); | |
| -- Create indexes for performance | |
| CREATE INDEX IF NOT EXISTS idx_scm_tasks_assigned_date ON trans.scm_tasks (assigned_to, scheduled_at); | |
| CREATE INDEX IF NOT EXISTS idx_scm_tasks_merchant_status ON trans.scm_tasks (merchant_id, status); | |
| CREATE INDEX IF NOT EXISTS idx_scm_tasks_status_scheduled ON trans.scm_tasks (status, scheduled_at); | |
| -- Verify table creation | |
| SELECT column_name, | |
| data_type, | |
| is_nullable, | |
| column_default | |
| FROM information_schema.columns | |
| WHERE table_schema = 'trans' | |
| AND table_name = 'scm_tasks' | |
| ORDER BY ordinal_position; |