# This file was auto-generated by Fern from our API Definition.

from ..core.unchecked_base_model import UncheckedBaseModel
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import typing


class LoyaltyPromotionIncentivePointsAdditionData(UncheckedBaseModel):
    """
    Represents the metadata for a `POINTS_ADDITION` type of [loyalty promotion incentive](entity:LoyaltyPromotionIncentive).
    """

    points_addition: int = pydantic.Field()
    """
    The number of additional points to earn each time the promotion is triggered. For example,
    suppose a purchase qualifies for 5 points from the base loyalty program. If the purchase also
    qualifies for a `POINTS_ADDITION` promotion incentive with a `points_addition` of 3, the buyer
    earns a total of 8 points (5 program points + 3 promotion points = 8 points).
    """

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
