Files
cannaiq/backend/migrations/040_dispensary_dba_name.sql
Kelly b4a2fb7d03 feat: Add v2 architecture with multi-state support and orchestrator services
Major additions:
- Multi-state expansion: states table, StateSelector, NationalDashboard, StateHeatmap, CrossStateCompare
- Orchestrator services: trace service, error taxonomy, retry manager, proxy rotator
- Discovery system: dutchie discovery service, geo validation, city seeding scripts
- Analytics infrastructure: analytics v2 routes, brand/pricing/stores intelligence pages
- Local development: setup-local.sh starts all 5 services (postgres, backend, cannaiq, findadispo, findagram)
- Migrations 037-056: crawler profiles, states, analytics indexes, worker metadata

Frontend pages added:
- Discovery, ChainsDashboard, IntelligenceBrands, IntelligencePricing, IntelligenceStores
- StateHeatmap, CrossStateCompare, SyncInfoPanel

Components added:
- StateSelector, OrchestratorTraceModal, WorkflowStepper

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07 11:30:57 -07:00

74 lines
3.0 KiB
SQL

-- Migration 040: Add dba_name column to dispensaries table
-- DBA (Doing Business As) name - the name the dispensary operates under,
-- which may differ from the legal entity name
-- This migration is idempotent - safe to run multiple times
-- Add dba_name column
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'dispensaries' AND column_name = 'dba_name') THEN
ALTER TABLE dispensaries ADD COLUMN dba_name TEXT DEFAULT NULL;
END IF;
END $$;
-- Add company_name column (legal entity name)
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'dispensaries' AND column_name = 'company_name') THEN
ALTER TABLE dispensaries ADD COLUMN company_name TEXT DEFAULT NULL;
END IF;
END $$;
-- Add azdhs_id for Arizona Department of Health Services license number
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'dispensaries' AND column_name = 'azdhs_id') THEN
ALTER TABLE dispensaries ADD COLUMN azdhs_id INTEGER DEFAULT NULL;
END IF;
END $$;
-- Add phone column
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'dispensaries' AND column_name = 'phone') THEN
ALTER TABLE dispensaries ADD COLUMN phone TEXT DEFAULT NULL;
END IF;
END $$;
-- Add email column
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'dispensaries' AND column_name = 'email') THEN
ALTER TABLE dispensaries ADD COLUMN email TEXT DEFAULT NULL;
END IF;
END $$;
-- Add google_rating column
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'dispensaries' AND column_name = 'google_rating') THEN
ALTER TABLE dispensaries ADD COLUMN google_rating NUMERIC(2,1) DEFAULT NULL;
END IF;
END $$;
-- Add google_review_count column
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'dispensaries' AND column_name = 'google_review_count') THEN
ALTER TABLE dispensaries ADD COLUMN google_review_count INTEGER DEFAULT NULL;
END IF;
END $$;
-- Add comments for documentation
COMMENT ON COLUMN dispensaries.dba_name IS 'DBA (Doing Business As) name - the public-facing name the dispensary operates under';
COMMENT ON COLUMN dispensaries.company_name IS 'Legal entity/company name that owns the dispensary';
COMMENT ON COLUMN dispensaries.azdhs_id IS 'Arizona Department of Health Services license number';
COMMENT ON COLUMN dispensaries.phone IS 'Contact phone number';
COMMENT ON COLUMN dispensaries.email IS 'Contact email address';
COMMENT ON COLUMN dispensaries.google_rating IS 'Google Maps rating (1.0 to 5.0)';
COMMENT ON COLUMN dispensaries.google_review_count IS 'Number of Google reviews';
-- Create index for searching by dba_name
CREATE INDEX IF NOT EXISTS idx_dispensaries_dba_name ON dispensaries (dba_name);
CREATE INDEX IF NOT EXISTS idx_dispensaries_azdhs_id ON dispensaries (azdhs_id);