# 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
