# app/modules/prospecting/schemas/performance_profile.py
"""Pydantic schemas for performance profile."""

from datetime import datetime

from pydantic import BaseModel, ConfigDict


class PerformanceProfileResponse(BaseModel):
    """Schema for performance profile response."""

    model_config = ConfigDict(from_attributes=True)

    id: int
    prospect_id: int
    performance_score: int | None = None
    accessibility_score: int | None = None
    best_practices_score: int | None = None
    seo_score: int | None = None
    first_contentful_paint_ms: int | None = None
    largest_contentful_paint_ms: int | None = None
    total_blocking_time_ms: int | None = None
    cumulative_layout_shift: float | None = None
    speed_index: int | None = None
    time_to_interactive_ms: int | None = None
    is_mobile_friendly: bool | None = None
    viewport_configured: bool | None = None
    total_bytes: int | None = None
    scan_strategy: str | None = None
    scan_error: str | None = None
    created_at: datetime
    updated_at: datetime
