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>
39 lines
811 B
Python
39 lines
811 B
Python
# app/modules/prospecting/schemas/scan_job.py
|
|
"""Pydantic schemas for scan jobs."""
|
|
|
|
from datetime import datetime
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class ScanJobResponse(BaseModel):
|
|
"""Schema for scan job response."""
|
|
|
|
id: int
|
|
job_type: str
|
|
status: str
|
|
total_items: int
|
|
processed_items: int
|
|
failed_items: int
|
|
skipped_items: int
|
|
progress_percent: float
|
|
started_at: datetime | None = None
|
|
completed_at: datetime | None = None
|
|
error_log: str | None = None
|
|
celery_task_id: str | None = None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class ScanJobListResponse(BaseModel):
|
|
"""Paginated scan job list."""
|
|
|
|
items: list[ScanJobResponse]
|
|
total: int
|
|
page: int
|
|
per_page: int
|
|
pages: int
|