import datetime

from interloper.schema import AssetSchema
from pydantic import Field


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

    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")
