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

import typing

import pydantic
import typing_extensions
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from ..core.serialization import FieldMetadata
from .safety_event_activity_feed_item_response_body_type import SafetyEventActivityFeedItemResponseBodyType
from .safety_event_object_response_body import SafetyEventObjectResponseBody


class SafetyEventActivityFeedItemResponseBody(UniversalBaseModel):
    """
    Safety event activity feed item.
    """

    id: str = pydantic.Field()
    """
    The ID of the activity event feed line item.
    """

    safety_event: typing_extensions.Annotated[
        SafetyEventObjectResponseBody, FieldMetadata(alias="safetyEvent"), pydantic.Field(alias="safetyEvent")
    ]
    time: str = pydantic.Field()
    """
    The time the activity occurred in the corresponding safety event in RFC 3339 milliseconds format.
    """

    type: SafetyEventActivityFeedItemResponseBodyType = pydantic.Field()
    """
    The type of activity that occurred in the safety event. We currently only support CoachingStateActivityType, BehaviorLabelActivityType, and CreateSafetyEventActivityType, but we may add support for more activity types in the future.  Valid values: `BehaviorLabelActivityType`, `CoachingStateActivityType`, `CreateSafetyEventActivityType`
    """

    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
