Source code for glQiwiApi.types.qiwi_types.transaction

from datetime import datetime
from typing import Optional, Union

from pydantic import Field

from glQiwiApi.types.base import Base
from glQiwiApi.types.basics import Sum


class Provider(Base):
    """ object: Provider """
    id: Optional[int] = None
    """ID провайдера в QIWI Wallet"""

    short_name: Optional[str] = Field(default=None, alias="shortName")
    """краткое наименование провайдера"""

    long_name: Optional[str] = Field(alias="longName", default=None)
    """развернутое наименование провайдера"""

    logo_url: Optional[str] = Field(alias="logoUrl", default=None)
    """ссылка на логотип провайдера"""

    description: Optional[str] = None
    """описание провайдера (HTML)"""

    keys: Optional[Union[str, list]] = None
    """список ключевых слов"""

    site_url: Optional[str] = Field(alias="siteUrl", default=None)
    """сайт провайдера"""


[docs]class Transaction(Base): """ object: Transaction """ transaction_id: int = Field(alias="txnId") """ ID транзакции в сервисе QIWI Кошелек""" person_id: int = Field(alias="personId") """Номер кошелька""" date: datetime """ Для запросов истории платежей - Дата/время платежа, во временной зоне запроса (см. параметр startDate). Для запросов данных о транзакции - Дата/время платежа, время московское """ error_code: Optional[int] = Field(alias="errorCode", default=None) """Код ошибки платежа""" error: Optional[str] = None """Описание ошибки""" status: str """ Статус платежа. Возможные значения: WAITING - платеж проводится, SUCCESS - успешный платеж, ERROR - ошибка платежа. """ type: str """ Тип платежа. Возможные значения: IN - пополнение, OUT - платеж, QIWI_CARD - платеж с карт QIWI (QVC, QVP). """ status_text: str = Field(alias="statusText") """Текстовое описание статуса платежа""" trm_transaction_id: str = Field(alias="trmTxnId") """Клиентский ID транзакции""" to_account: str = Field(alias="account") """ Для платежей - номер счета получателя. Для пополнений - номер отправителя, терминала или название агента пополнения кошелька """ sum: Sum """Данные о сумме платежа или пополнения.""" commission: Sum """Данные о комиссии""" total: Sum """Общие данные о платеже в формате объекта Sum""" provider: Provider """Данные о провайдере.""" source: Optional[Provider] = None """Служебная информация""" comment: Optional[str] = None """ Комментарий к платежу""" currency_rate: int = Field(alias="currencyRate") """Курс конвертации (если применяется в транзакции)""" _extras: Optional[dict] = Field(..., alias="extras") """Служебная информация""" _cheque_ready: bool = Field(..., alias="chequeReady") """Специальное поле""" _bank_document_available: bool = Field(..., alias="bankDocumentAvailable") """Специальное поле""" _repeat_payment_enabled: bool = Field(..., alias="repeatPaymentEnabled") """Специальное поле""" _favorite_payment_enabled: bool = Field( ..., alias="favoritePaymentEnabled" ) """Специальное поле""" _regular_payment_enabled: bool = Field(..., alias="regularPaymentEnabled") """Специальное поле""" def __str__(self) -> str: return f"""Статус транзакции: {self.status} Дата проведения платежа: {self.date} Сумма платежа: {self.sum.amount} Комментарий: {self.comment if isinstance(self.comment, str) else '-'} {"Кому" if self.type == "OUT" else "От кого"}: {self.to_account} """