# generated by datamodel-codegen:
#   filename:  core/geo_breakdown_support.json
#   timestamp: 2026-02-28T17:39:50+00:00

from __future__ import annotations

from typing import Annotated

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

from ..enums import metro_system, postal_system


class GeographicBreakdownSupport(AdCPBaseModel):
    model_config = ConfigDict(
        extra='forbid',
    )
    country: Annotated[
        bool | None, Field(description='Supports country-level geo breakdown (ISO 3166-1 alpha-2)')
    ] = None
    metro: Annotated[
        dict[metro_system.MetroAreaSystem, bool] | None,
        Field(
            description='Metro area breakdown support. Keys are metro-system enum values; true means supported.'
        ),
    ] = None
    postal_area: Annotated[
        dict[postal_system.PostalCodeSystem, bool] | None,
        Field(
            description='Postal area breakdown support. Keys are postal-system enum values; true means supported.'
        ),
    ] = None
    region: Annotated[
        bool | None, Field(description='Supports region/state-level geo breakdown (ISO 3166-2)')
    ] = None
