Some checks failed
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>
70 lines
1.5 KiB
Python
70 lines
1.5 KiB
Python
# app/modules/prospecting/schemas/enrichment.py
|
|
"""Pydantic response schemas for enrichment/scanning endpoints."""
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class HttpCheckResult(BaseModel):
|
|
"""Response from a single HTTP check."""
|
|
|
|
has_website: bool
|
|
uses_https: bool | None = None
|
|
http_status_code: int | None = None
|
|
redirect_url: str | None = None
|
|
|
|
|
|
class HttpCheckBatchItem(BaseModel):
|
|
"""Single item in a batch HTTP check response."""
|
|
|
|
domain: str
|
|
has_website: bool
|
|
uses_https: bool | None = None
|
|
http_status_code: int | None = None
|
|
redirect_url: str | None = None
|
|
|
|
|
|
class HttpCheckBatchResponse(BaseModel):
|
|
"""Response from batch HTTP check."""
|
|
|
|
processed: int
|
|
results: list[HttpCheckBatchItem]
|
|
|
|
|
|
class ScanSingleResponse(BaseModel):
|
|
"""Response from a single scan (tech or performance)."""
|
|
|
|
domain: str
|
|
profile: bool
|
|
|
|
|
|
class ScanBatchResponse(BaseModel):
|
|
"""Response from a batch scan."""
|
|
|
|
processed: int
|
|
successful: int
|
|
|
|
|
|
class ContactScrapeResponse(BaseModel):
|
|
"""Response from a single contact scrape."""
|
|
|
|
domain: str
|
|
contacts_found: int
|
|
|
|
|
|
class FullEnrichmentResponse(BaseModel):
|
|
"""Response from full enrichment pipeline."""
|
|
|
|
domain: str
|
|
has_website: bool | None = None
|
|
tech_scanned: bool
|
|
perf_scanned: bool
|
|
contacts_found: int
|
|
score: int
|
|
lead_tier: str
|
|
|
|
|
|
class ScoreComputeBatchResponse(BaseModel):
|
|
"""Response from batch score computation."""
|
|
|
|
scored: int
|