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

from .group_by_base import GroupByBase
from ...conversation.types.conversation_field import ConversationField
import pydantic
import typing
from .range import Range
from ...core.pydantic_utilities import IS_PYDANTIC_V2


class ConversationGroupBy(GroupByBase):
    field: ConversationField = pydantic.Field()
    """
    Field used for data grouping.
    """

    ranges: typing.Optional[typing.List[Range]] = pydantic.Field(default=None)
    """
    Numeric ranges for grouping data into predefined buckets. Applies only to numeric fields.
    """

    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
