# app/modules/prospecting/__init__.py
"""
Prospecting Module - Lead discovery, scoring, and campaign management.

This is a self-contained module providing:
- Domain scanning and website analysis for Luxembourg businesses
- Offline lead capture (street encounters, networking)
- Opportunity scoring algorithm
- Marketing campaign management tailored by lead type
- Interaction tracking and follow-up reminders

Module Structure:
- models/ - Database models (prospects, tech profiles, scores, campaigns, etc.)
- services/ - Business logic (enrichment, scoring, lead filtering, campaigns)
- schemas/ - Pydantic DTOs
- routes/ - API and page routes (admin only)
- tasks/ - Celery background tasks for batch scanning
- exceptions.py - Module-specific exceptions
"""


def __getattr__(name: str):
    """Lazy import module components to avoid circular imports."""
    if name == "prospecting_module":
        from app.modules.prospecting.definition import prospecting_module

        return prospecting_module
    if name == "get_prospecting_module_with_routers":
        from app.modules.prospecting.definition import (
            get_prospecting_module_with_routers,
        )

        return get_prospecting_module_with_routers
    raise AttributeError(f"module {__name__!r} has no attribute {name!r}")


__all__ = ["prospecting_module", "get_prospecting_module_with_routers"]
