## Changes - **Migration 089**: Add is_immutable and method columns to task_schedules - Per-state product_discovery schedules (4h default) - Store discovery weekly (168h) - All schedules use HTTP transport (Puppeteer/browser) - **Task Scheduler**: HTTP-only product discovery with per-state scheduling - Each state has its own immutable schedule - Schedules can be edited (interval/priority) but not deleted - **TasksDashboard UI**: Full immutability support - Lock icon for immutable schedules - State and Method columns in schedules table - Disabled delete for immutable, restricted edit fields - **Store Discovery HTTP**: Auto-queue product_discovery for new stores - **Migration 088**: Discovery payloads storage schema 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
31 lines
1.3 KiB
SQL
31 lines
1.3 KiB
SQL
-- Migration 088: Extend raw_crawl_payloads for discovery payloads
|
|
--
|
|
-- Enables saving raw store data from Dutchie discovery crawls.
|
|
-- Store discovery returns raw dispensary objects - save them for historical analysis.
|
|
|
|
-- Add payload_type to distinguish product crawls from discovery crawls
|
|
ALTER TABLE raw_crawl_payloads
|
|
ADD COLUMN IF NOT EXISTS payload_type VARCHAR(32) NOT NULL DEFAULT 'product';
|
|
|
|
-- Add state_code for discovery payloads (null for product payloads)
|
|
ALTER TABLE raw_crawl_payloads
|
|
ADD COLUMN IF NOT EXISTS state_code VARCHAR(10);
|
|
|
|
-- Add store_count for discovery payloads (alternative to product_count)
|
|
ALTER TABLE raw_crawl_payloads
|
|
ADD COLUMN IF NOT EXISTS store_count INTEGER;
|
|
|
|
-- Make dispensary_id nullable for discovery payloads
|
|
ALTER TABLE raw_crawl_payloads
|
|
ALTER COLUMN dispensary_id DROP NOT NULL;
|
|
|
|
-- Add index for discovery payload queries
|
|
CREATE INDEX IF NOT EXISTS idx_raw_crawl_payloads_type_state
|
|
ON raw_crawl_payloads(payload_type, state_code)
|
|
WHERE payload_type = 'store_discovery';
|
|
|
|
-- Comments
|
|
COMMENT ON COLUMN raw_crawl_payloads.payload_type IS 'Type: product (default), store_discovery';
|
|
COMMENT ON COLUMN raw_crawl_payloads.state_code IS 'State code for discovery payloads (e.g., AZ, MI)';
|
|
COMMENT ON COLUMN raw_crawl_payloads.store_count IS 'Number of stores in discovery payload';
|