Files
orion/app/modules/prospecting/__init__.py
Samir Boulahtit 6d6eba75bf
Some checks failed
CI / pytest (push) Failing after 48m31s
CI / docs (push) Has been skipped
CI / deploy (push) Has been skipped
CI / ruff (push) Successful in 11s
CI / validate (push) Successful in 23s
CI / dependency-scanning (push) Successful in 28s
feat(prospecting): add complete prospecting module for lead discovery and scoring
Migrates scanning pipeline from marketing-.lu-domains app into Orion module.
Supports digital (domain scan) and offline (manual capture) lead channels
with enrichment, scoring, campaign management, and interaction tracking.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 00:59:47 +01:00

38 lines
1.3 KiB
Python

# 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"]