import datetime

from interloper.schema import AssetSchema
from pydantic import Field


class DisplayGrossAndInvalidTraffic(AssetSchema):
    """
    The Display Gross and Invalid Traffic report provides insights into the quality of traffic generated by campaigns
    on Amazon Ads. It includes key metrics such as total clicks, impressions, gross click-throughs, gross impressions,
    invalid click-through rate, and invalid impressions.
    """

    campaign_name: str | None = Field(..., description="The name of the campaign")
    campaign_status: str | None = Field(..., description="The status of the campaign")
    clicks: float | None = Field(..., description="The number of clicks")
    date: datetime.date | None = Field(..., description="The date of the data entry")
    gross_click_throughs: float | None = Field(..., description="The number of gross click throughs")
    gross_impressions: float | None = Field(..., description="The number of gross impressions")
    impressions: float | None = Field(..., description="The number of impressions")
    invalid_click_through_rate: float | None = Field(..., description="The rate of invalid click throughs")
    invalid_click_throughs: float | None = Field(..., description="The number of invalid click throughs")
    invalid_impression_rate: float | None = Field(..., description="The rate of invalid impressions")
    invalid_impressions: float | None = Field(..., description="The number of invalid impressions")
