# generated by datamodel-codegen:
#   filename:  core/pricing_option.json
#   timestamp: 2025-12-11T15:09:37+00:00

from __future__ import annotations

from typing import Annotated

from pydantic import Field, RootModel

from ..pricing_options import (
    cpc_option,
    cpcv_option,
    cpm_auction_option,
    cpm_fixed_option,
    cpp_option,
    cpv_option,
    flat_rate_option,
    vcpm_auction_option,
    vcpm_fixed_option,
)


class PricingOption(
    RootModel[
        cpm_fixed_option.CpmFixedRatePricingOption
        | cpm_auction_option.CpmAuctionPricingOption
        | vcpm_fixed_option.VcpmFixedRatePricingOption
        | vcpm_auction_option.VcpmAuctionPricingOption
        | cpc_option.CpcPricingOption
        | cpcv_option.CpcvPricingOption
        | cpv_option.CpvPricingOption
        | cpp_option.CppPricingOption
        | flat_rate_option.FlatRatePricingOption
    ]
):
    root: Annotated[
        cpm_fixed_option.CpmFixedRatePricingOption
        | cpm_auction_option.CpmAuctionPricingOption
        | vcpm_fixed_option.VcpmFixedRatePricingOption
        | vcpm_auction_option.VcpmAuctionPricingOption
        | cpc_option.CpcPricingOption
        | cpcv_option.CpcvPricingOption
        | cpv_option.CpvPricingOption
        | cpp_option.CppPricingOption
        | flat_rate_option.FlatRatePricingOption,
        Field(
            description='A pricing model option offered by a publisher for a product. Each pricing model has its own schema with model-specific requirements.',
            title='Pricing Option',
        ),
    ]
