# 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


class SentMmsDetails(UniversalBaseModel):
    message_ids: typing_extensions.Annotated[typing.List[str], FieldMetadata(alias="messageIds")] = pydantic.Field()
    """
    Array of unique message identifiers for an individual MMS send. Each identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
    When media assets are too large to fit in a single MMS and `options.multiple_messages` is set to true, the content is automatically split across multiple messages. Each split message gets its own ID, and all IDs are returned in this array. <br><br>
    Note: When sending to audiences, you'll receive multiple response objects (one per recipient), each containing its own messageIds array.
    """

    segments: float = pydantic.Field()
    """
    Total number of segments used across the message.
    """

    total_cost: typing_extensions.Annotated[float, FieldMetadata(alias="totalCost")] = pydantic.Field()
    """
    Total cost of sending the message.
    """

    sender: str = pydantic.Field()
    """
    Sender's phone number in E.164 format.
    """

    recipient: str = pydantic.Field()
    """
    Recipient's phone number in E.164 format.
    """

    status: typing.Literal["queued"] = pydantic.Field(default="queued")
    """
    Message is queued for delivery.
    """

    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
