#  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 PaymentStatus(Object):
    """
    **Represents the payment status of a transaction in Rubigram.**
        `from rubio.core.types import PaymentStatus`

    Tracks the unique payment ID and the current status of the payment.

    Attributes:
        payment_id (`Optional[str]`):
            Unique identifier for the payment.

        status (`Optional[Union[str, rubio.core.enums.PaymentStatusType]]`):
            Current status of the payment, either as a string or as an enum (Paid, NotPaid).
    """
    payment_id: Optional[str] = None
    status: Optional[Union[str, rubio.core.enums.PaymentStatusType]] = None