# generated by datamodel-codegen:
#   filename:  measurement.json
#   timestamp: 2025-11-15T22:03:55+00:00

from __future__ import annotations

from typing import Annotated

from adcp.types.base import AdCPBaseModel
from pydantic import ConfigDict, Field


class Measurement(AdCPBaseModel):
    model_config = ConfigDict(
        extra="forbid",
    )
    attribution: Annotated[
        str,
        Field(
            description="Attribution methodology",
            examples=["deterministic_purchase", "probabilistic"],
        ),
    ]
    reporting: Annotated[
        str,
        Field(
            description="Reporting frequency and format",
            examples=["weekly_dashboard", "real_time_api"],
        ),
    ]
    type: Annotated[
        str,
        Field(
            description="Type of measurement",
            examples=["incremental_sales_lift", "brand_lift", "foot_traffic"],
        ),
    ]
    window: Annotated[
        str | None, Field(description="Attribution window", examples=["30_days", "7_days"])
    ] = None
