# 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
