-- Migration: Add A1 retry tracking to campaign_status table
-- Purpose: Prevent infinite error emails for empty A1 campaigns
-- Date: January 31, 2026

\echo 'Adding A1 retry tracking fields to campaign_status table...'

ALTER TABLE campaign_status
ADD COLUMN IF NOT EXISTS a1_retry_count INTEGER DEFAULT 0,
ADD COLUMN IF NOT EXISTS a1_last_retry_at TIMESTAMP,
ADD COLUMN IF NOT EXISTS a1_permanently_failed BOOLEAN DEFAULT FALSE,
ADD COLUMN IF NOT EXISTS a1_failure_reason TEXT;

\echo 'Fields added successfully'

-- Create index for faster queries
CREATE INDEX IF NOT EXISTS idx_campaign_status_a1_failed ON campaign_status(a1_permanently_failed);

\echo 'Index created'

-- Add comments for documentation
COMMENT ON COLUMN campaign_status.a1_retry_count IS 'Number of times A1→A2 processing attempted with empty folder';
COMMENT ON COLUMN campaign_status.a1_last_retry_at IS 'Timestamp of last retry attempt';
COMMENT ON COLUMN campaign_status.a1_permanently_failed IS 'TRUE if campaign failed all 3 retry attempts';
COMMENT ON COLUMN campaign_status.a1_failure_reason IS 'Description of why campaign was marked as permanently failed';

\echo ''
\echo '============================================================'
\echo 'Migration 003 complete!'
\echo '============================================================'
\echo 'Added fields: a1_retry_count, a1_last_retry_at, a1_permanently_failed, a1_failure_reason'
\echo 'Purpose: Track A1 empty folder retries (max 3 attempts)'
\echo '============================================================'
