Source code for glQiwiApi.qiwi.clients.wallet.types.balance

from typing import Any, Dict, Optional, Union

from pydantic import Field, validator

from glQiwiApi.types.amount import AmountWithCurrency, CurrencyModel
from glQiwiApi.types.base import HashableBase
from glQiwiApi.utils.currency_util import Currency


class AvailableBalance(HashableBase):
    alias: str
    currency: Union[str, CurrencyModel]


[docs]class Balance(HashableBase): """object: Balance""" alias: str title: str fs_alias: str = Field(alias='fsAlias') bank_alias: str = Field(alias='bankAlias') has_balance: bool = Field(alias='hasBalance') balance: Optional[AmountWithCurrency] = None currency: CurrencyModel account_type: Optional[Dict[str, Any]] = Field(None, alias='type') is_default_account: bool = Field(alias='defaultAccount') @validator('currency', pre=True) def humanize_pay_currency(cls, v): # type: ignore if not isinstance(v, int): return v return Currency.get(str(v))