63 lines
2.2 KiB
Python
63 lines
2.2 KiB
Python
class WalletNotFoundError(Exception):
|
|
"""Wallet could not find user with such an ID from a guild in the database"""
|
|
|
|
def __init__(self, owner_id: int, guild_id: int) -> None:
|
|
self.owner_id = owner_id
|
|
self.guild_id = guild_id
|
|
|
|
super().__init__(
|
|
f"Wallet of a user with id {self.owner_id} was not found for the guild with id {self.guild_id}"
|
|
)
|
|
|
|
|
|
class WalletInsufficientFunds(Exception):
|
|
"""Wallet's balance is not sufficient to perform the operation"""
|
|
|
|
def __init__(
|
|
self,
|
|
wallet: "Wallet",
|
|
amount: float,
|
|
) -> None:
|
|
self.wallet = wallet
|
|
self.amount = amount
|
|
|
|
super().__init__(
|
|
f"Wallet of a user with id {self.wallet.owner_id} for the guild with id {self.wallet.guild_id} does not have sufficient funds to perform the operation (balance: {self.wallet.balance}, requested: {self.amount})"
|
|
)
|
|
|
|
|
|
class WalletOverdraftLimitExceeded(Exception):
|
|
"""Wallet's overdraft limit is not sufficient to perform the operation"""
|
|
|
|
def __init__(
|
|
self,
|
|
wallet: "Wallet",
|
|
amount: float,
|
|
overdraft_limit: float,
|
|
) -> None:
|
|
self.wallet = wallet
|
|
self.amount = amount
|
|
self.overdraft_limit = overdraft_limit
|
|
|
|
super().__init__(
|
|
f"Wallet of a user with id {self.wallet.owner_id} for the guild with id {self.wallet.guild_id} does not have sufficient funds to perform the operation (balance: {self.wallet.balance}, requested: {self.amount}, overdraft limit: {self.overdraft_limit})"
|
|
)
|
|
|
|
|
|
class WalletBalanceLimitExceeded(Exception):
|
|
"""Wallet's balance limit is not high enough to perform the operation"""
|
|
|
|
def __init__(
|
|
self,
|
|
wallet: "Wallet",
|
|
amount: float,
|
|
balance_limit: float,
|
|
) -> None:
|
|
self.wallet = wallet
|
|
self.amount = amount
|
|
self.balance_limit = balance_limit
|
|
|
|
super().__init__(
|
|
f"Wallet of a user with id {self.wallet.owner_id} for the guild with id {self.wallet.guild_id} would have too much funds after the operation (balance: {self.wallet.balance}, deposited: {self.amount}, balance limit: {self.balance_limit})"
|
|
)
|