Source code for aiogram.types.transaction_partner_user
from __future__ import annotations
from typing import TYPE_CHECKING, Any, Literal
from ..enums import TransactionPartnerType
from .transaction_partner import TransactionPartner
if TYPE_CHECKING:
from .affiliate_info import AffiliateInfo
from .gift import Gift
from .paid_media_union import PaidMediaUnion
from .user import User
[docs]
class TransactionPartnerUser(TransactionPartner):
"""
Describes a transaction with a user.
Source: https://core.telegram.org/bots/api#transactionpartneruser
"""
type: Literal[TransactionPartnerType.USER] = TransactionPartnerType.USER
"""Type of the transaction partner, always 'user'"""
transaction_type: str
"""Type of the transaction, currently one of 'invoice_payment' for payments via invoices, 'paid_media_payment' for payments for paid media, 'gift_purchase' for gifts sent by the bot, 'premium_purchase' for Telegram Premium subscriptions gifted by the bot, 'business_account_transfer' for direct transfers from managed business accounts"""
user: User
"""Information about the user"""
affiliate: AffiliateInfo | None = None
"""*Optional*. Information about the affiliate that received a commission via this transaction. Can be available only for 'invoice_payment' and 'paid_media_payment' transactions."""
invoice_payload: str | None = None
"""*Optional*. Bot-specified invoice payload. Can be available only for 'invoice_payment' transactions."""
subscription_period: int | None = None
"""*Optional*. The duration of the paid subscription. Can be available only for 'invoice_payment' transactions."""
paid_media: list[PaidMediaUnion] | None = None
"""*Optional*. Information about the paid media bought by the user; for 'paid_media_payment' transactions only"""
paid_media_payload: str | None = None
"""*Optional*. Bot-specified paid media payload. Can be available only for 'paid_media_payment' transactions."""
gift: Gift | None = None
"""*Optional*. The gift sent to the user by the bot; for 'gift_purchase' transactions only"""
premium_subscription_duration: int | None = None
"""*Optional*. Number of months the gifted Telegram Premium subscription will be active for; for 'premium_purchase' transactions only"""
if TYPE_CHECKING:
# DO NOT EDIT MANUALLY!!!
# This section was auto-generated via `butcher`
def __init__(
__pydantic__self__,
*,
type: Literal[TransactionPartnerType.USER] = TransactionPartnerType.USER,
transaction_type: str,
user: User,
affiliate: AffiliateInfo | None = None,
invoice_payload: str | None = None,
subscription_period: int | None = None,
paid_media: list[PaidMediaUnion] | None = None,
paid_media_payload: str | None = None,
gift: Gift | None = None,
premium_subscription_duration: int | None = None,
**__pydantic_kwargs: Any,
) -> None:
# DO NOT EDIT MANUALLY!!!
# This method was auto-generated via `butcher`
# Is needed only for type checking and IDE support without any additional plugins
super().__init__(
type=type,
transaction_type=transaction_type,
user=user,
affiliate=affiliate,
invoice_payload=invoice_payload,
subscription_period=subscription_period,
paid_media=paid_media,
paid_media_payload=paid_media_payload,
gift=gift,
premium_subscription_duration=premium_subscription_duration,
**__pydantic_kwargs,
)