"""Parked sources — bot-blocked or otherwise non-functional today.

Kept visible in the registry so campaigns.yaml can reference them and
the orchestrator's health report shows WHY they're skipped. Promote to
real modules when the block is removed (e.g. residential proxy, account
upgrade, ISP change).

Re-evaluation triggers:
- idealista / immobiliare: DataDome bypass available or ListGlobally API
  proves sufficient (covers same inventory)
- leggett (frenchestateagents): Cloudflare bypass or pivot to direct
  Leggett.fr API
- leboncoin: residential proxy or RSS resurrection
"""
from sources._base import DisabledSource


def make_disabled_sources() -> list:
    """Factory for all parked sources. Called from the registry."""
    return [
        DisabledSource('idealista', ['IT', 'ES', 'PT'],
                       'DataDome CAPTCHA blocks all regions (2026-05-25)'),
        DisabledSource('immobiliare', ['IT'],
                       'HTTP 403 generic anti-bot block (2026-05-25)'),
        DisabledSource('leggett', ['FR'],
                       'Cloudflare anti-bot block on frenchestateagents.com (2026-05-25)'),
        DisabledSource('leboncoin', ['FR'],
                       'DataDome blocks RSS + search HTML (2026-05-25)'),
    ]
