#  Rubio - Rubika API library for python
#  Copyright (C) 2025-present Rubio <https://github.com/RubioTeam>
#  Github - https://github.com/RubioTeam/rubio.core


from __future__ import annotations

from typing import Optional, Union
from dataclasses import dataclass
from .config import Object
import rubio.core


@dataclass
class ForwardedFrom(Object):
    """
    **Represents information about the original sender of a forwarded message.**
        `from rubio.core.types import ForwardedFrom`

    Includes the type of sender, the original message ID, and identifiers
    for the chat or sender from which the message was forwarded.

    Attributes:
        type_from (`Optional[rubio.core.enums.ForwardedFromType]`):
            Type of the original sender (User, Bot, Channel).

        message_id (`Optional[str]`):
            ID of the original message.

        from_chat_id (`Optional[str]`):
            Chat ID where the original message was sent.

        from_sender_id (`Optional[str]`):
            Sender ID of the original message.
    """
    type_from: Optional[Union[str, rubio.core.enums.ForwardedFromType]] = None
    message_id: Optional[str] = None
    from_chat_id: Optional[str] = None
    from_sender_id: Optional[str] = None