CREATE TABLE IF NOT EXISTS facebook_accounts ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), label VARCHAR(100) NOT NULL, profile_path TEXT NOT NULL, cookie_file TEXT NOT NULL, is_active BOOLEAN NOT NULL DEFAULT TRUE, last_scrape_at TIMESTAMPTZ, last_success_at TIMESTAMPTZ, last_error_at TIMESTAMPTZ, last_error_message TEXT, consecutive_failures INT NOT NULL DEFAULT 0, flagged BOOLEAN NOT NULL DEFAULT FALSE, flagged_at TIMESTAMPTZ, flagged_reason TEXT, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS idx_fb_accounts_active ON facebook_accounts(is_active); CREATE INDEX IF NOT EXISTS idx_fb_accounts_flagged ON facebook_accounts(flagged); CREATE TABLE IF NOT EXISTS facebook_scrape_logs ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), account_id UUID NOT NULL REFERENCES facebook_accounts(id) ON DELETE CASCADE, started_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), completed_at TIMESTAMPTZ, success BOOLEAN NOT NULL DEFAULT FALSE, leads_found INT NOT NULL DEFAULT 0, error_message TEXT, detected_flag VARCHAR(50), created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS idx_fb_scrape_logs_account ON facebook_scrape_logs(account_id, created_at DESC);