-- Create the leads table (also called "requirements" in some contexts) -- Required by RequirementRepository in crates/db/src/models/requirement.rs CREATE TABLE IF NOT EXISTS leads ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), profession_key VARCHAR(100) NOT NULL, title VARCHAR(255) NOT NULL, description TEXT NOT NULL DEFAULT '', location VARCHAR(255) NOT NULL DEFAULT '', budget_inr INT, required_date DATE, extra_data_json JSONB, status VARCHAR(50) NOT NULL DEFAULT 'DRAFT', rejection_reason TEXT, request_count INT NOT NULL DEFAULT 0, accepted_count INT NOT NULL DEFAULT 0, expires_at TIMESTAMPTZ, approved_at TIMESTAMPTZ, approved_by UUID, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), created_by_user_id UUID, updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS idx_leads_status ON leads(status); CREATE INDEX IF NOT EXISTS idx_leads_profession_key ON leads(profession_key); CREATE INDEX IF NOT EXISTS idx_leads_created_by_user_id ON leads(created_by_user_id); CREATE INDEX IF NOT EXISTS idx_leads_status_profession ON leads(status, profession_key);